这是我的结构:
class Class1 {
String name;
RealmList<Class2> objects;
}
class Class2{
String field1;
String field2;
String field3;
}
我想做的是查询所有Class1
对象,其中Class2.field1 in ["someValue1"]
和Class2.field2 = "someValue2"
但无法这样做。
这是我的查询:
realm.where(Class1.class).in("objects.field1",getField1Array()).equalTo("objects.field2", getField2()).findAll()
上面的查询or
field1
的操作,field2
我想要的是and
操作。
是否可以按嵌套对象的 2 列进行查询? 如果是,则如何查询?
例:
{
"class1": [
{
"name": "JOHN",
"objects": [
{
"field1": "COMPLETE",
"field2": "f2"
},
{
"field1": "HOLD",
"field2": "f3"
}
]
},
{
"name": "JOHN",
"objects": [
{
"field1": "COMPLETE",
"field2": "f1"
},
{
"field1": "HOLD",
"field2": "f3"
}
]
}
]
}
在此查询中
realm.where(Class1.class).in("objects.field1",["COMPLETE", "INPROGESS"]).equalTo("objects.field2", "f3").findAll()
我希望查询返回空列表,但我收到了两个对象。
realm.where(Class1.class)
.in("objects.field1",["COMPLETE", "INPROGESS"])
.findAll()
.equalTo("objects.field2", "f3")
.findAll()
如果这不起作用,那么您需要做的是设置双向关系,并将查询反转为基于 Class2
而不是Class1
。