找到父ID为X的所有子域对象

时间:2016-04-29 12:58:46

标签: android realm realm-list

在这个example中,文档讨论了在为子对象指定查询时获取父对象。

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

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

enter image description here

1 个答案:

答案 0 :(得分:3)

编辑:自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();

OLD ANSWER:

如果您有一个指向用户的对象链接,则只能使用给定的用户搜索

public class Dog extends RealmObject {
    //...
    private User user;
}

然后你可以做

realm.where(Dog.class).equalTo("color", "Brown").equalTo("user.name", "John").findAll();