如何将领域列表转换为RealmResults <object>?

时间:2016-12-20 07:16:00

标签: android realm

我想在域名列表中查询:

City cityObj = realmCitylist.where().equalTo("name", strCity).findFirst();

但错误运行时间如下:

  

UnsupportedOperationException:此方法仅在托管模式下可用

所以,我用谷歌搜索并找到这个问题的答案:This method is only available in managed mode,这表明不可能在领域列表上查询。

所以我必须在RealmResults上查询:

RealmResults< City > realmCities;
City cityObj = realmCities.where().equalTo("name", strCity).findFirst();

问题: 如何将reamList转换为RealmResults?

1 个答案:

答案 0 :(得分:1)

  

此方法仅在托管模式下可用

这意味着只有在托管的RealmObject中属于RealmList时才能使用此方法。

所以这不起作用:

RealmList<Blah> blahs = new RealmList<>();
blahs.where()... // <-- this is an unmanaged list, this won't work

解决方案:如果要在RealmList之上进行查询,它应该属于由Realm实例返回的托管RealmObject。

RealmList<Blah> blahs = realm.where(Doh.class).findFirst().getBlahs();
RealmResults<Blah> blahResults = blahs.where().equalTo(BlahFields.NAME, strCity).findAll();

在您的情况下,您可能只是想首先对Realm实例执行RealmQuery。

RealmResults<City> cities = realm.where(City.class).findAll();
City city = cities.where().equalTo(CityFields.NAME, strCity).findFirst();