Android 领域查询逆关系
Android Realm query inverse relationship
使用 Realm 文档中的 Person -> Dogs 示例,我如何获得没有主人的所有 Dogs?
class Person extends RealmObject {
// ...
private RealmList<Dog> dogs;
}
class Dog extends RealmObject {
// ...
@LinkingObjects("dogs")
private final RealmResults<Person> owners = null;
}
根据这里的教程Queries,你可以这样查询Realm DB中的记录
// Build the query looking at all users:
RealmQuery<User> query = realm.where(User.class);
// Add query conditions:
query.equalTo("name", "John");
query.or().equalTo("name", "Peter");
// Execute the query:
RealmResults<User> result1 = query.findAll();
// Or alternatively do the same all at once (the "Fluent interface"):
RealmResults<User> result2 = realm.where(User.class)
.equalTo("name", "John")
.or()
.equalTo("name", "Peter")
.findAll();
您可以循环遍历结果 1 以查找主人为空的狗,或者设置查询以查找主人为空的狗。
例如这样:
RealmResults<User> result2 = realm.where(Dog.class)
.isNotEmpty("owners")
.findAll();
使用 Realm 文档中的 Person -> Dogs 示例,我如何获得没有主人的所有 Dogs?
class Person extends RealmObject {
// ...
private RealmList<Dog> dogs;
}
class Dog extends RealmObject {
// ...
@LinkingObjects("dogs")
private final RealmResults<Person> owners = null;
}
根据这里的教程Queries,你可以这样查询Realm DB中的记录
// Build the query looking at all users:
RealmQuery<User> query = realm.where(User.class);
// Add query conditions:
query.equalTo("name", "John");
query.or().equalTo("name", "Peter");
// Execute the query:
RealmResults<User> result1 = query.findAll();
// Or alternatively do the same all at once (the "Fluent interface"):
RealmResults<User> result2 = realm.where(User.class)
.equalTo("name", "John")
.or()
.equalTo("name", "Peter")
.findAll();
您可以循环遍历结果 1 以查找主人为空的狗,或者设置查询以查找主人为空的狗。
例如这样:
RealmResults<User> result2 = realm.where(Dog.class)
.isNotEmpty("owners")
.findAll();