我想在域名列表中查询:
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?
答案 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();