我有一个List<String> ids
,我希望所有的FooRealmObject
都具有包含在ids
列表中的ID字段。通过集合中提供的ID查询对象的领域
我可以通过ID的ids
列表和查询对象迭代,但我希望有一个班轮此,如:
realm.where(Foo.class).in("id", ids).findAll();
任何想法?
我有一个List<String> ids
,我希望所有的FooRealmObject
都具有包含在ids
列表中的ID字段。通过集合中提供的ID查询对象的领域
我可以通过ID的ids
列表和查询对象迭代,但我希望有一个班轮此,如:
realm.where(Foo.class).in("id", ids).findAll();
任何想法?
现在的境界已经支持你想要的功能。
添加在Realm Java 1.2.0中。 (https://github.com/realm/realm-java/issues/841)
现在你可以做你想要什么:
realm.where(Foo.class).in("id", ids).findAll();
我不认为有这样的文件查询方法。你可以做类似如下:
RealmQuery query = realm.where(Foo.class);
for (String id : ids) {
query.equalTo("id", id).or();
}
query.findAll();
可能需要通过它使用;;;迭代删除最后的.or(),但我不确定。
正如Jeremy所说,查询参数列表是不可能的(现在),但他的答案根本不起作用。
这是我使用的解决方法:
List<String> ids = ...;
Realm realm = Realm.getInstance(mContext);
RealmQuery<Foo> query = realm.where(Foo.class);
for (int i = 0; i < ids.size() - 1; i++) {
query = query.equalTo("id", ids.get(i)).or();
}
query = query.equalTo("id", ids.get(ids.size() - 1));
RealmResults<Foo> foos = query.findAll();