如何在android中使用realm DB更新已存在的值?
我一直在尝试更新它,但它只是添加为新值而不是覆盖它
答案 0 :(得分:39)
使用方法realm.copyToRealmOrUpdate()
更新现有对象及其所有字段的另一种方法是使用方法Object obj = new Object();
obj.setField1(field1);
obj.setField2(field2);
realm.beginTransaction();
realm.copyToRealmOrUpdate(obj);
realm.commitTransaction();
:
int[]
如果您的对象有主键,此方法将自动更新对象,而不会出现重复的对象:)
答案 1 :(得分:6)
您可以使用insertOrUpdate方法来执行此操作。希望这有帮助
Realm.getDefaultInstance().executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
objectToEdit.setNewValue("string");
realm.insertOrUpdate();
}
});
答案 2 :(得分:0)
Realm realm = Realm.getDefaultInstance();
OrderedRealmCollection<Practice> orderedRealmCollection =
realm.where(Practice.class)
.contains("key", "matchig value")
.findAll();
if(orderedRealmCollection.size()!=0){
Practice practice = orderedRealmCollection.first();
Realm.getDefaultInstance().executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
practice.setUpdate_practice_steps(""+steps);
realm.insertOrUpdate(practice);
}
});
}