Java Portal | Программирование
12.8K subscribers
1.23K photos
104 videos
38 files
1.18K links
Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика

Связь: @devmangx

РКН: https://clck.ru/3H4WUg
Download Telegram
Spring Boot: можно реализовать оптимистическую блокировку через аннотацию @Version.

Идеально подходит, когда:

- чтения происходят часто
- записи сравнительно редкие
- конфликты случаются нечасто

Не лучший вариант, когда:

- конфликты происходят часто
- нужна строгая сериализация

public class Account {

@Id
private Long id;

private BigDecimal balance;

@Version
private Long version;
}


Когда читаем, Entity загружается с текущей версией. Допустим, version = 2.

Когда делаем update, учитывается запись с version = 2.

Если за это время другая транзакция уже успела её обновить, version уже не 2, апдейт не затронет ни одной строки, и Hibernate кинет OptimisticLockException.

То есть конфликт ловится без блокировки строки.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1