Запрос ссылки означает «имеет хотя бы один из X, где условие истинно»
Таким образом, ваш запрос
realm.where(Parent.class)
.beginGroup()
.equalTo("childrens.name","Jessica")
.equalTo("childrens.age","17")
.endGroup()
.findAll();
говорит,
«дать мне родителей, где родителиимеет по крайней мере одного из детей с именем Джессика, И имеет по крайней мере одного из детей с возрастом 17 "
, который является родителем 1 и родителем 2, потому что у них обоих есть ребенок по имени Джессика, и они обаиметь ребенка в возрасте 17 лет.
Можно сделать две вещи:
1.)
realm.where(Parent.class)
.equalTo("childrens.name","Jessica")
.findAll()
.where()
.equalTo("childrens.age","17")
.findAll();
2.) В разделе «Дети» определите @LinkingObjects
public class Child extends RealmObject {
@LinkingObjects("children")
private final RealmResults<Parent> parents = null;
}
А теперь вы можете сделать проверку на основе детей:
RealmResults<Child> children = realm.where(Child.class).equalTo("name", "Jessica").equalTo("age", 17).findAll();
Child child = children.get(0);
RealmResults<Parent> parents = child.getParents(); // <-- parents of "Jessica, 17"