java / intermediate
Snippet
Optimistisches Sperren mit @Version
Optimistisches Sperren verhindert, dass sich gleichzeitige Aktualisierungen gegenseitig überschreiben. Das Feld @Version verfolgt Änderungen; wenn zwei Threads versuchen, dieselbe Zeile gleichzeitig zu aktualisieren, wirft einer eine ObjectOptimisticLockingFailureException.
snippet.java
1
2
3
4
5
6
7
8
9
10
@Entitypublic class InventoryItem {@Id @GeneratedValueprivate Long id;@Versionprivate Long version;private Integer stockLevel;}
spring
Erklärung
1
@Version
Teilt Spring Data JPA mit, dieses Feld für die Versionsverfolgung bei Datenbank-Updates zu verwenden.
2
private Long version
Jedes Mal, wenn die Entität aktualisiert wird, erhöht Spring diesen Wert automatisch in der Datenbank.