Как мне обновить уже существующее значение с помощью realm DB в android?Оператор обновления в Realm android
Я пытался обновить его, но он добавляет, как новое значение только не overwritting его
Как мне обновить уже существующее значение с помощью realm DB в android?Оператор обновления в Realm android
Я пытался обновить его, но он добавляет, как новое значение только не overwritting его
Другой способ обновить существующий объект со всеми его полями в Realm БД используется метод realm.copyToRealmOrUpdate()
:
Object obj = new Object();
obj.setField1(field1);
obj.setField2(field2);
realm.beginTransaction();
realm.copyToRealmOrUpdate(obj);
realm.commitTransaction();
Если объект имеет Первичный ключ, этот метод будет автоматически обновлять объект без дубликатов объектов :)
Подробнее: copyToRealmOrUpdate()
Вы фактически не получаете никакой пользы от начала транзакции, прежде чем ваш объект будет создан. Поэтому я хотел бы предложить перенести эту первую строку перед copyToRealmOrUpdate(), чтобы она понятна. – bmunk
Спасибо за совет, пост отредактировал :) –
Этот ответ устарел? 'realm.copyToRealmOrUpdate (obj);' не требуется, если вы работаете с областью. Это необходимо, только если вы используете Retrofit, например: https://realm.io/docs/java/latest/#retrofit – Micro
Вы можете метод пользователя insertOrUpdate сделать this.Hope это помогает
Realm.getDefaultInstance().executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
objectToEdit.setNewValue("string");
realm.insertOrUpdate();
}
});
Пожалуйста, покажите нам свои усилия (соответствующую часть кода, где вы пытаетесь обновить). Только тогда мы сможем рассказать вам, где проблема. – DroidDev
** см. Полный ответ с примером http://stackoverflow.com/questions/30933229/update-realm-object-android** –