[JAVA] Vorsichtsmaßnahmen zum Aktualisieren des Realm-Objekts

Einführung

Wenn Sie eine Android-App entwickeln und versuchen, Daten mit "Realm" zu aktualisieren,

Cannot modify managed objects outside of a write transaction. Fehler wurde ausgegeben.

Warum?

Fehlerübersicht

Die Datenbank wurde außerhalb der Transaktion aktualisiert.

...
DB-Aktualisierungsprozess
...

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

Was ist eine Transaktion?

Einfach gesagt Mehrere Prozesse, die konsistente Ergebnisse erfordern.

Was ist die Ursache des Fehlers?

Wenn ein Prozess getrennt wird, wird er inkonsistent und die Transaktion schlägt fehl, obwohl die Transaktion erfolgreich sein muss.

Lösung

Führen Sie die Aktualisierungsverarbeitung innerhalb einer Transaktion durch.

Konkretes Beispiel

realm.beginTransaction()

...
DB-Aktualisierungsprozess
...

realm.copyToRealmOrUpdate(DB)
realm.commitTransaction()

Referenz

Was ist eine "Transaktion"? Ich habe versucht, auf super einfache Weise darüber zu sprechen!

Recommended Posts

Vorsichtsmaßnahmen zum Aktualisieren des Realm-Objekts
[ruby + excel] Vorsichtsmaßnahmen zum Speichern unter