java – 如何部分更新领域对象

如何部分更新领域对象?

想象一下,我有一个这样的模型:

class Person {
    @PrimaryKey long id;
    String name;
    Address address;
}

假设我将本地域数据库与后端同步,后端只给我一个名称已更改的ID和名称的人(没有地址).

如何仅更新Person.name?此外,我希望Person.address保持原样在本地数据库中.

解决方法:

您只能插入/复制/更新整个对象,不能指定“您不想保存的字段”.所以你应该查询你的对象并设置它的东西,然后保存回来.

final Address address = getAddress();
realm.executeTransaction(new Realm.Transaction() {
    @Override
    public void execute(Realm realm) {
        Person person = realm.where(Person.class).equalTo(PersonFields.ID, id).findFirst();
        if(person == null) {
            person = new Person();  // or realm.createObject(Person.class, id);
            person.id = id; 
        }
        person.address = address;
        realm.insertOrUpdate(person);
    }
});
上一篇:解决pycharm在ubuntu下搜狗输入法一直固定在左下角的问题


下一篇:如何加速tomcat启动速度