reealm数据库异步保存,官方提供用的是这种set赋值
RealmAsyncTask transaction = realm.executeTransactionAsync(new Realm.Transaction() {
@Override
public void execute(Realm bgRealm) {
User user = bgRealm.createObject(User.class);
user.setName("John");
user.setEmail("john@corporation.com");
}
}, null);
但是我想用这种方式
public void saveRealmMapInfo(final AllInfoMapBean realmObject) {
realm.executeTransactionAsync(new Realm.Transaction() {
@Override
public void execute(Realm bgRealm) {
AllInfoMapBean allInfoMapBean = bgRealm.createObject(AllInfoMapBean.class);
allInfoMapBean = realmObject;
}
});
}
存储不上,应该怎么解决
已经找到答案了,谢啦
https://github.com/realm/realm-java/issues/2941#issuecomment-223914141
好像是因为内部通过set和get方法做了操作的,你写实体如果不写get/set方法直接使用public去赋值好像都不行。
另外我看了下好像现在1.0正式版本后可以不用强制set/get了
User user = new User("John");
user.setEmail("john@corporation.com");
// Copy the object to Realm. Any further changes must happen on realmUser
realm.beginTransaction();
User realmUser = realm.copyToRealm(user);
realm.commitTransaction();
这里好像就是直接赋值实体的
https://realm.io/cn/docs/java/latest/#section-12