Ich habe Zweifel, welcher der beste Typ für ein Feld ist, das mit @Version für optimistisches Sperren in JPA gekennzeichnet ist.Der beste Typ für das JPA-Versionsfeld für optimistisches Sperren
Die API javadoc (http://docs.oracle.com/javaee/7/api/javax/persistence/Version.html) sagt:
"Folgende Typen für die Version Eigenschaften werden unterstützt: int., Integer, kurz, kurz, lang, Lange, java.sql.Timestamp"
In anderer Seite (http://en.wikibooks.org/wiki/Java_Persistence/Locking#Optimistic_Locking) sagt:..
„JPA unterstützt ein optimistischen Sperren Versionsfeld verwenden, die auf jedes Update aktualisiert werden Das Feld kann entweder numerisch oder ein Zeitstempel Wert ein numerischer Wert als empfohlen Der numerische Wert ist präziser, portabler, performanter und einfacher zu handhaben als ein Zeitstempel. "
"Die Zeitstempelsperre wird häufig verwendet, wenn die Tabelle bereits eine letzte aktualisierte Zeitstempelspalte enthält, und stellt auch eine bequeme Möglichkeit zur automatischen Aktualisierung einer zuletzt aktualisierten Spalte dar. Der Wert der Zeitmarkenversion kann nützlicher sein als eine numerische Version enthält die relevanten Informationen darüber, wann das Objekt zuletzt aktualisiert wurde. "
Die Fragen, die ich habe, sind:
ist besser, ein Timestamp-Typ, wenn Sie ein Feld Lastupdated gehen zu müssen, oder besser ein numerisches Versionsfeld und den Zeitstempel in anderem Feld haben?
Zwischen numerischen Typen (int, Integer, kurz, kurz, lang, lang) Welches ist das beste zu wählen (unter Berücksichtigung der Länge jedes Typs)? Ich meine, das Beste ist Long, aber es erfordert viel Platz für jede Reihe.
Was passiert, wenn das Versionsfeld die letzte Nummer eines numerischen Typs erhält (z. B. 32.767 in einem kurzen Feld)? Wird es im nächsten Schritt wieder bei 1 beginnen?