2015-08-26 61 views
3

我有一個List<String> ids,我希望所有的FooRealmObject都具有包含在ids列表中的ID字段。通過集合中提供的ID查詢對象的領域

我可以通過ID的ids列表和查詢對象迭代,但我希望有一個班輪此,如:

realm.where(Foo.class).in("id", ids).findAll(); 

任何想法?

回答

0

我不認爲有這樣的文件查詢方法。你可以做類似如下:

RealmQuery query = realm.where(Foo.class); 
for (String id : ids) { 
    query.equalTo("id", id).or(); 
} 
query.findAll(); 

可能需要通過它使用;;;迭代刪除最後的.or(),但我不確定。

2

正如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();