查找所有父级 id 为 X 的子领域对象
Find all child realm objects where the parent's id is X
在此 example 中,文档讨论了在为子对象指定查询时获取父对象。
有没有办法在为父对象指定查询的同时获取子对象?
在给定的示例中,我可以搜索名为 John 的棕色狗吗?
编辑: 从 Realm 3.5.0 开始,您实际上可以使用评论部分提到的 "backlinks"。高兴!
其实从Realm 3.0.0开始,双向links是性能瓶颈,所以使用backlinks是首选方式
它的工作方式是:
public class User extends RealmObject {
private RealmList<Dog> dogs;
}
public class Dog extends RealmObject {
@LinkingObjects("dogs")
private final RealmResults<User> owners = null;
}
现在您可以:
realm.where(Dog.class).equalTo("color", "Brown").equalTo("owners.name", "John").findAll();
旧答案:
如果您有对象 link 给用户,您只能使用给定的 user 搜索 dogs。
public class Dog extends RealmObject {
//...
private User user;
}
那你可以
realm.where(Dog.class).equalTo("color", "Brown").equalTo("user.name", "John").findAll();
在此 example 中,文档讨论了在为子对象指定查询时获取父对象。
有没有办法在为父对象指定查询的同时获取子对象?
在给定的示例中,我可以搜索名为 John 的棕色狗吗?
编辑: 从 Realm 3.5.0 开始,您实际上可以使用评论部分提到的 "backlinks"。高兴!
其实从Realm 3.0.0开始,双向links是性能瓶颈,所以使用backlinks是首选方式
它的工作方式是:
public class User extends RealmObject {
private RealmList<Dog> dogs;
}
public class Dog extends RealmObject {
@LinkingObjects("dogs")
private final RealmResults<User> owners = null;
}
现在您可以:
realm.where(Dog.class).equalTo("color", "Brown").equalTo("owners.name", "John").findAll();
旧答案:
如果您有对象 link 给用户,您只能使用给定的 user 搜索 dogs。
public class Dog extends RealmObject {
//...
private User user;
}
那你可以
realm.where(Dog.class).equalTo("color", "Brown").equalTo("user.name", "John").findAll();