gpt4 book ai didi

android - 更新特定 Realm 模型属性?

转载 作者:行者123 更新时间:2023-12-01 01:41:57 25 4
gpt4 key购买 nike

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

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)如果User已经存在于 Realm 中,我只想更新 name使用主键 id .类似于 Update name only where id = "someValue"在用户中。

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

最佳答案

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,然后在事务中修改其属性。

关于android - 更新特定 Realm 模型属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44842541/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com