首页 > 解决方案 > 不允许嵌套事务

问题描述

如何从领域中删除多个对象?

realm.beginTransaction
realm.executeTransaction(realm -> {
        for(String id : listOfIds) {

         realm.where(StorageClass.class).equalTo("id", id).findFirst().removeFromRealm();
        }
      }
  );
realm.commitTransaction();

如果我执行上述操作并尝试从现有的 id 列表中删除所有 id,它会给我以下错误:

java.lang.IllegalStateException: Nested transactions are not allowed. Use commitTransaction() after each beginTransaction().
    at io.realm.internal.ImplicitTransaction.promoteToWrite(ImplicitTransaction.java:39)
    at io.realm.Realm.beginTransaction(Realm.java:1435)

提前致谢

标签: androidrealm

解决方案


只需删除 realm.beginTransaction() 和 realm.commitTransaction() 因为执行事务内部调用开始和提交事务。


推荐阅读