我有一个这样的模型:
public class Album extends RealmObject {
@PrimaryKey
@Required
private String _id;
@Required
private String title;
private String description;
public String get_id() {
return _id;
}
public void set_id(String _id) {
this._id = _id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
我从服务器获取数据并将JSON转换为Album对象。我尝试以这种方式将对象持久化到Realm 3.1.3中:
realm.executeTransactionAsync(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
realm.insertOrUpdate(album);
}
});
但问题是_id
和title
字段被复制到数据库,但description
字段始终为空。
但是,如果我创建一个新对象并将原始对象中的所有字段复制到新对象,则所有字段都会完全存在。以下是它的工作原理:
realm.executeTransactionAsync(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
Album tmpAlbum = new Album();
tmpAlbum.set_id(album.get_id());
tmpAlbum.setTitle(album.getTitle());
tmpAlbum.setDescription(album.getDescription());
realm.insertOrUpdate(tmpAlbum);
}
});
是否有其他方法可以在不从原始对象创建副本的情况下保留整个对象?