我有一个在json中有三个字段的对象,以及我自己的一个字段
public class partner extends RealmObject {
@PrimaryKey
@SerializedName("id")
private int id;
@SerializedName("name")
private String name;
@SerializedName("subtitle")
private String subtitle;
private int testInt;
}
这是一个小例子json
[{
"id":1,
"name":"test1",
"subtitle":"test2",
}]
我将值保存在字段" testInt"中,所以
Realm realm = Realm.getDefaultInstance();
realm.beginTransaction();
hPartner.setTestInt(6);
realm.commitTransaction();
我使用代码创建/更新对象。
realm.createOrUpdateAllFromJson(partner.class, new ByteArrayInputStream(str.getBytes(Charset.forName("UTF-8"))));
一切正常。 但价值存储在现场" testInt"被清除了。更新后,我看到值为零。 (但必须看到值6)
我应该怎样对字段中的值" testInt"不删除?
更新 每次应用程序启动时,我的数据都会更新。 我做了以下测试(此代码仅用于测试)。 此代码在启动应用程序
运行 realm.beginTransaction();
realm.createOrUpdateAllFromJson(partner.class, new ByteArrayInputStream(jsonData.getBytes(Charset.forName("UTF-8"))));
realm.commitTransaction();
realm.beginTransaction();
partner partner = realm.where(partner.class).findFirst();
partner.setTestInt(6);
realm.commitTransaction();
realm.beginTransaction();
realm.createOrUpdateAllFromJson(partner.class, new ByteArrayInputStream(jsonData.getBytes(Charset.forName("UTF-8"))));
realm.commitTransaction();
partner = realm.where(partner.class).findFirst();
在后者中,对象"伙伴"值存储。它有效!
但是,如果我重新启动应用程序并检查第一个对象" partner"价值" testInt"被清除了。某处有错误或错误。
UPDATE2 发现删除所有记录的错误代码。我的错 realm.where(partner.class).findAll()deleteAllFromRealm();