领域集合查询

Realm collection query

我想在满足此条件的领域 (java) 中构建查询: 所有标签类型为 X 且名称为 Y 的书籍。 这里是我的领域 类:

class Book extends RealmObject {

    public RealmList<Tag> tags;

    public int fileType;

    public String title;
}

class Tag extends RealmObject {

    public Book book;

    public int type;

    public String name;
}

我必须使用基于 Book 的查询,所以查询必须这样开始:

realm.where(Book.class)

但是我无法按我的意愿构建查询。 我试过这个:

realm.where(Book.class)
  .equalTo("tags.type", X)
  .contains("tags.name", Y)
  .findAll();

此查询表示 tags.type 中任何一个等于 X 并且 tags.name 中任何一个包含 Y 的图书。

但我想将这两个条件应用到同一个 Tag 对象。

我该怎么做?

谢谢。

Link 查询可能有点难以理解,但我们在这里有一个完整的示例和解释:https://realm.io/docs/java/latest/#link-queries

在您的情况下,您需要将其重写为:

realm.where(Book.class)
  .equalTo("tags.type", X)
  .findAll().where()
  .contains("tags.name", Y)
  .findAll();