更新特定领域模型属性?

2024-02-20

如何仅更新某些领域模型属性,而不是尝试使用一次又一次地保存完整的领域模型copyToRealmOrUpdate().

public class User extends RealmObject {

@PrimaryKey
public String id = UUID.randomUUID().toString();
private String          name;
private int             age;

@Ignore
private int             sessionId;

// Standard getters & setters generated by your IDE…
public String getName() { return name; }
public void   setName(String name) { this.name = name; }
public int    getAge() { return age; }
public void   setAge(int age) { this.age = age; }
public int    getSessionId() { return sessionId; }
public void   setSessionId(int sessionId) { this.sessionId = sessionId; 
}
}

1) If User已经在领域中持续存在,我只想更新name使用主键id。就像是Update name only where id = "someValue"在用户中。

2)那么,如果有 500 个领域模型,并且每个领域模型仅更改一个属性,该怎么办?应该通过以下方式更新领域中的完整模型copyToRealmOrUpdate会更快还是迭代所有领域结果模型并首先找到该项目然后仅更新单个属性?


final String userId = ...;
try(Realm r = Realm.getDefaultInstance()) {
    r.executeTransaction((realm) -> {
        User user = realm.where(User.class).equalTo("id", userId).findFirst();
        if(user != null) {
            user.setName("set name");
        }
    });
}

您可以通过 id 获取托管 RealmObject,然后在事务内修改其属性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更新特定领域模型属性? 的相关文章

随机推荐