public RealmList<CategoriesDto> getListOfCategories(String type){
final RealmList<CategoriesDto> listOfCategories = new RealmList<>();
final CategoriesDto categoriesDto = realm.where(CategoriesDto.class).equalTo("identifier", type).findFirst();
if (categoriesDto != null) {
realm.beginTransaction();
RealmResults<CategoriesDto> categories = realm.where(CategoriesDto.class).equalTo("parentId", categoriesDto.getCategoryId()).findAll();
for (int i = 0; i < categories.size(); i++) {
listOfCategories.add(categories.get(i));
}
// realm.commitTransaction();
}
return listOfCategories;
}
我查詢後境界使用commitTransaction()兩次的方法,並得到這個錯誤,我每查詢後試圖realm.beginTransaction()
和realm.commitTransaction()
。java.lang.IllegalStateException:不允許嵌套事務。每次的BeginTransaction()
還有一件事:這個查詢只從realm db讀取數據。
Ror在數據庫中寫入數據我們通常使用commit來保存數據。
我試圖realm.commitTransaction()
還,但我得到同樣的錯誤。
我對Realm一無所知。在讀取查詢之前真的需要調用beginTransaction()嗎? –
是的,如果你沒有調用,那麼應用程序崩潰,錯誤是「你需要調用reaml.beginTransactio()」 – user3449611
你有沒有嘗試在循環內添加'beginTransaction'和'commitTransaction'? –