【发布时间】:2016-09-23 02:42:56
【问题描述】:
我无法让 Realm 正常工作。
RealmConfiguration realmConfig = new RealmConfiguration.Builder(this).build();
Realm.setDefaultConfiguration(realmConfig);
Realm realm = Realm.getDefaultInstance();
MyObjectExtendingRealmObject myObject = new MyObjectExtendingRealmObject("John");
realm.beginTransaction();
realm.copyToRealm(myObject);
realm.commitTransaction();
错误:java.lang.IllegalStateException:更改领域数据只能在事务内部完成
说我疯了,但我不是在事务中进行数据持久化,这正是在文档中所做的吗?在此处查看使用copyToRealm 的示例:https://realm.io/docs/java/latest/#creating-objects
我做错了什么?
编辑:什么,Realm 不支持自动递增主键 ID?对我来说是破坏者。我会留下这个问题,以防它帮助其他人。
编辑:我的班级
public class MyObjectExtendingRealmObject extends RealmObject {
private String name;
public MyObjectExtendingRealmObject() {
}
public MyObjectExtendingRealmObject(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
}
【问题讨论】:
-
自动递增 id 不是 Realm 开箱即用的功能,但 it's not something you cannot implement by hand in 5 minutes 也是
-
顺便说一句,我的猜测是你的 MyObjectExtendingRealmObject 没有默认的空构造函数,即使它应该
-
@EpicPandaForce 它确实有一个默认的空构造函数
标签: java android database transactions realm