我有一個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();