realm - 同一个 ArrayObject 上的领域 java 嵌套查询
问题描述
当前代码:
mRealm.where(AdditionalData.class)
.contains("checklistParticipants.email", a@a.com, Case.INSENSITIVE)
.equalTo("checklistParticipants.type", 0)
.findAll();
它返回类似于ANY
记录的结果。
我想检查嵌套查询,仅在满足两个条件时才返回记录。同样在嵌套查询中,记录电子邮件必须是a@a.com并且type=0
我尝试了以下方法,但结果相同。
mRealm.where(AdditionalData.class)
.contains("checklistParticipants.email",a@a.com, Case.INSENSITIVE)
.findAll()
.where()
.equalTo("checklistParticipants.type", 0)
.findAll();
下面的屏幕截图显示了 2 个子项,
- 电子邮件= a@a.com & 类型 = 1
- 电子邮件= x@x.com &类型 = 0
在非此即彼的方法中检查两个值的领域。
也试过:
mRealm.where(AdditionalData.class)
.equalTo("checklistParticipants.email",a@a.com, Case.INSENSITIVE)
.and()
.equalTo("checklistParticipants.type", 0)
.findAll()
classpath "io.realm:realm-gradle-plugin:5.8.0"
更新
class AdditionalData {
String name;
RealmList<ChecklistParticipants> checklistParticipants;
}
class ChecklistParticipants{
String email;
String type;
String field3;
}
解决方案
正如@EpicPandaForce 所说,您需要使用 LinkingObjects
class AdditionalData {
String name;
@LinkingObjects(ChecklistParticipants.rlAdditionalData)
final RealmResults<ChecklistParticipants> linkedChecklistParticipants = null;
public RealmResults<RealmDocumentLines> getLinkedChecklistParticipants() {
return linkedChecklistParticipants ;
}
}
清单参与者
class ChecklistParticipants{
String email;
String type;
String field3;
AdditionalData rlAdditionalData;
public AdditionalData getAdditionalData() {
return rlAdditionalData;
}
public void setAdditionalData(AdditionalData additionalData) {
this.rlAdditionalData = additionalData ;
}
}
然后查询
RealmResult<ChecklistParticipants> result = mRealm.where(ChecklistParticipants.class)
.contains("email", a@a.com, Case.INSENSITIVE)
.equalTo("type", 0)
.findAll();
然后循环遍历结果并getAdditionalData()
从每个项目中使用
推荐阅读
- python - Keras my_layer.output 返回 KerasTensor 对象而不是 Tensor 对象(在自定义损失函数中)
- powershell - 比较对象多值 powershell
- javascript - 在值中插入特殊字符
- python-3.x - 解决环境:使用 current_repodata.json 的 repodata 失败,将使用下一个 repodata 源重试
- css - 在所有屏幕上将大 div 居中但允许滚动?
- python-3.x - 将一列提取到多列csv文件中
- node.js - Node Sass 找不到当前环境的绑定:Linux 32-bit with Node.js 12.x
- python - 胶水中的DynamicFrame给出SchemaBuilderException:记录不完整?
- laravel - laravelx8 QueryException 错误,同时保存模型(例如:Reservation)需要撇号插入值项
- javascript - DataTables 的问题 - 不要使用样式和 js