我在修改模型时遇到此错误 -
java.lang.IllegalStateException: Changing Realm data can only be done from inside a transaction.
这是我的代码 -
Realm realm = ProjectUtil.getRealmWithConfiguration(mActivity);
realm.beginTransaction();
if (something) {
wordModel.setSomething(something);
} else {
wordModel.setSomething(false);
}
realm.commitTransaction();
答案 0 :(得分:0)
您的RealmObject
很可能与给定的Realm实例无关,并且可能与不同的realm实例相关联。你如何获得wordModel
对象?如果您像WordModel wordModel = new WordModel();
那样创建它,那么您应该使用realm.copyToRealmOrUpdate(wordModel)
方法将其复制到领域。
答案 1 :(得分:0)
我多次阅读领域documentation后找到了答案。事实证明,每次制作RealmConfiguration
实例时,您都无法构建Realm
。而是在应用程序类中设置默认配置,如 -
RealmConfiguration config = new RealmConfiguration.Builder(context)
.name("realmFile.realm")
.encryptionKey("yourKey".getBytes())
.migration(new Migration())
.build();
Realm.setDefaultConfiguration(config);
并且每次要创建Realm Instance调用时 -
Realm.getDefaultInstance()