web-dev-qa-db-ja.com

レルムのステートメントを更新android

AndroidのレルムDBを使用して既存の値を更新するにはどうすればよいですか?

私はそれを更新しようとしましたが、それを上書きしないだけで新しい値として追加しています

19
Dinu

Realm DB内のすべてのフィールドで既存のオブジェクトを更新する別の方法は、メソッドrealm.copyToRealmOrUpdate()を使用することです。

Object obj = new Object();
obj.setField1(field1);
obj.setField2(field2);
realm.beginTransaction();
realm.copyToRealmOrUpdate(obj);
realm.commitTransaction();

オブジェクトにPrimary Keyがある場合、このメソッドはオブジェクトを複製せずにオブジェクトを自動的に更新します:)

詳細: copyToRealmOrUpdate()

39
j_gonfer

InsertOrUpdateメソッドを使用してこれを行うことができます。

  Realm.getDefaultInstance().executeTransaction(new Realm.Transaction() {
                @Override
                public void execute(Realm realm) {

                    objectToEdit.setNewValue("string");
                    realm.insertOrUpdate();
                }
            });
6
John