Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Hibernate Optimistic Locking..wie funktioniert es?

Um genau zu sein, meinen Sie nicht optimistisches Sperren, sondern optimistische Parallelität (ohne Sperre). Die Verwendung eines Zeitstempels für die Version dient nur der Unterstützung älterer Datenbanken, da eine moderne Datenbank (zumindest theoretisch) schneller arbeiten kann als ihre Speichergenauigkeit ein Zeitstempel.

Die Verwendung der Integer-Versionseigenschaft ist sehr einfach:

  • Beim Einfügen:Version auf 1 setzen
  • Beim Aktualisieren und Löschen:Version um 1 erhöhen und "where [email protected] anhängen " an jede SQL-Anweisung. Gibt die Anzahl der geänderten Datensätze zurück. Löst eine StaleObjectStateException aus, wenn die Anzahl der geänderten Datensätze anders als erwartet ist.

Persönlich würde ich nicht zwei separate Anwendungen erstellen, die dieselben Daten in einer Nicht-Legacy-Situation schreiben, da dies bedeutet, dass die Geschäftslogik dupliziert und Änderungen auf zwei Anwendungen angewendet werden müssen, auch wenn die Änderung nur für eine von ihnen relevant ist die Anwendungen.