2015-08-26 55 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();