1

在此示例中,文档讨论了在为子对象指定查询时获取父对象。

有没有办法在为父对象指定查询时获取子对象?

在给定的示例中,我可以使用名为 John 的用户搜索棕色的狗吗?

在此处输入图像描述

4

1 回答 1

4

编辑:从 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();
于 2016-04-29T13:01:28.020 回答