Java 非托管RealObject不能完全持久化
我有一个这样的模型:Java 非托管RealObject不能完全持久化,java,android,realm,Java,Android,Realm,我有一个这样的模型: 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
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对象。我尝试通过以下方式将对象持久化到领域3.1.3中:
realm.executeTransactionAsync(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
realm.insertOrUpdate(album);
}
});
但问题是\u 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);
}
});
有没有其他方法可以持久化整个对象而不从原始对象创建副本?调试它,并检查当您试图将其保存到域中时,
album.description
是否不为空。我检查了,album.description
不为空。当我复制该值并将其设置为tmpAlbum
对象时,一切正常。只有description
为空时,才会发生这种情况,因此。。。。