【发布时间】:2017-08-19 15:59:46
【问题描述】:
境界 3.5.0
我的 Android 应用程序必须从 json 创建/更新 Realm 对象。
这里是 POJO:
public class Person extends RealmObject {
@PrimaryKey
private int id;
@Required
private String name;
private String address;
private String contacts;
}
这里 sn-p 从 json 创建/更新 Realm 对象:
public void addOrUpdatePerson(final String personASJson) {
Realm realm = Realm.getDefaultInstance();
realm.executeTransactionAsync(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
realm.createOrUpdateObjectFromJson(Person.class, personASJson);
}
});
}
我的步骤:
- 我想创建新的Person。
-
结果我有下一个 json:
{"id": 1, "address": "Address 1", "name": "Person 1", "contacts": "我的联系人"}
调用方法“addOrUpdatePerson”并在 Realm 上成功创建新的 Person。 好的!
现在我想更改同一 Person 中“联系人”字段的内容。
-
所以我创建了新的 json:
{"id": 1, "address": "Address 1", "name": "Person 1", "contacts": "我的新联系人"}
调用方法“addOrUpdatePerson”和Person成功更新为字段“contacts”的新值。好的!
但是当我需要更新存在 Person 我不想传递整个 json。
但我只想通过增量。 所以对于更新存在 Person 我可以使用下一个 json:
{"id": 1, "contacts": "My SUPER NEW contacts"}
如您所见,我只传递了 Person id 和 delta(字段“contacts”)。
我再次使用此 json 调用方法“addOrUpdatePerson”,并使用字段“contacts”的新值更新了 Person 成功。好的!
我将确认要更新 Realm 中的对象,我只能使用 Person.id 设置增量。不需要设置 WHOLE json。
对吗?
【问题讨论】: