领域:使用beginGroup()和endGroup()查询语法错误

时间:2016-08-26 09:15:02

标签: java android realm

我在执行此类查询时因java.lang.UnsupportedOperationException: Syntax error而崩溃:

public RealmResults<MyObject> getMyObjects(List<Integer> ids, boolean filter) {
    Realm realm = null;
    try {
        realm = Realm.getDefaultInstance();
        RealmQuery<MyObject> query = realm.where(MyObject.class);
        query = query.beginGroup();
        for (int i=0; i< ids.size(); i++) {
            query = query.equalTo("id", ids.get(i));
            if (i != ids.size() -1) {
                query = query.or();
            }
        }
        query = query.endGroup();
        if (filter) {
            query = query.equalTo("someBoolean", true);
        }
        return query.findAll();
    } finally {
        if (realm != null) realm.close();
    }
}

删除query = query.beginGroup();query = query.endGroup();会导致语法错误消失,但我不确定查询是否会产生相同的结果。

有人可以帮我指出语法错误的位置及其发生的原因吗?

1 个答案:

答案 0 :(得分:1)

您应该使用1.2.0中添加的in()运算符。

以前我会告诉你使用this answer