这是我的结构:
$ hadoop fs -cat /$PATH/log.txt
[data] [data2] [data3]
[data] [data2] [data3]
[data] [data2] [data3]
我想要查询的所有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
操作。
是否可以通过2列嵌套对象进行查询?如果是,那么?
示例:
and
在此查询中
{
"class1": [
{
"name": "JOHN",
"objects": [
{
"field1": "COMPLETE",
"field2": "f2"
},
{
"field1": "HOLD",
"field2": "f3"
}
]
},
{
"name": "JOHN",
"objects": [
{
"field1": "COMPLETE",
"field2": "f1"
},
{
"field1": "HOLD",
"field2": "f3"
}
]
}
]
}
我希望查询返回空列表,但我收到了两个对象。
答案 0 :(得分:0)
realm.where(Class1.class)
.in("objects.field1",["COMPLETE", "INPROGESS"])
.findAll()
.equalTo("objects.field2", "f3")
.findAll()
如果这不起作用,那么您需要做的是设置双向关系,并将查询反转为基于Class2
而不是Class1
。