0 Tage Serie
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
java
1
2
3
4
5
6
7
8
9
10
@Entity
public class InventoryItem {
@Id @GeneratedValue
private Long id;
@Version
private 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.