[JAVA] Précautions pour la mise à jour de l'objet Realm

introduction

Lors du développement d'une application Android, si vous essayez de mettre à jour les données à l'aide de Realm,

Cannot modify managed objects outside of a write transaction. Une erreur a été générée.

Pourquoi?

Résumé des erreurs

La base de données a été mise à jour en dehors de la transaction.

...
Processus de mise à jour de la base de données
...

realm.beginTransaction()
realm.copyToRealmOrUpdate(DB)
realm.commitTransaction()

Qu'est-ce qu'une transaction?

Tout simplement Processus multiples nécessitant une cohérence des résultats.

Alors, quelle est la cause de l'erreur?

Lorsqu'un processus est séparé, il devient incohérent et la transaction échoue même si la transaction doit réussir.

Solution

Effectuez un traitement de mise à jour dans une transaction.

Exemple concret

realm.beginTransaction()

...
Processus de mise à jour de la base de données
...

realm.copyToRealmOrUpdate(DB)
realm.commitTransaction()

référence

Qu'est-ce qu'une "transaction"? J'ai essayé d'en parler de manière super simple!

Recommended Posts

Précautions pour la mise à jour de l'objet Realm
[ruby + excel] Précautions d'enregistrement sous