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'? –