android - 不允许嵌套事务
问题描述
如何从领域中删除多个对象?
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)
提前致谢
解决方案
只需删除 realm.beginTransaction() 和 realm.commitTransaction() 因为执行事务内部调用开始和提交事务。
推荐阅读
- ansible - Ansible 2.4 当 var 被定义并包含
- mysql - MySql SUM(1) 返回表中记录的总数
- c - 在 C 中使用 fgets() 函数检测到堆栈粉碎
- java - 在我的 Spring Boot 应用程序中为 Kafka 实施健康检查的更清洁、更有效的方法是什么?
- angular - ag-grid 使用 Angular 从社区升级到企业
- java - 为什么 Maven 会抛出类似“必须是“pom”但是是“jar”的错误?
- reactjs - 安装 Expo-cli
- mysql - ibdata1 中有多少可用空间
- ios - 如何在 React Native 中呈现原生 UIViewController?
- java - 错误:不兼容的类型:
> 无法转换为观察者>