在此示例中,文档讨论了在为子对象指定查询时获取父对象。
有没有办法在为父对象指定查询时获取子对象?
在给定的示例中,我可以使用名为 John 的用户搜索棕色的狗吗?
编辑:从 Realm 3.5.0 开始,您实际上可以使用评论部分中提到的“反向链接”。麾!
事实上,从 Realm 3.0.0 开始,双向链接是性能瓶颈,因此使用反向链接是首选方式。
它的工作方式是:
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();
旧答案:
如果您有指向该用户的对象链接,则只能搜索具有给定用户的狗。
public class Dog extends RealmObject {
//...
private User user;
}
然后你可以做
realm.where(Dog.class).equalTo("color", "Brown").equalTo("user.name", "John").findAll();