领域集合查询
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();
我想在满足此条件的领域 (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();