对两列嵌套对象的 Realm Java 查询



这是我的结构:

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

最新更新