首页 > realm 不用set方法不能保存到数据库

realm 不用set方法不能保存到数据库

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

【热门文章】
【热门文章】