TGViewer
Java Portal | Программирование Java Portal | Программирование @java_iibrary · 11.6K subscribers
Post #2143 2.31K
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
  • 👍 6
More from @java_iibrary
  1. Sep 26, 2026Во многих приложениях есть такой эндпоинт. Фронтенд удаляет JWT после того, как пользовате…
  2. Sep 26, 2026Java: используйте Deque вместо Stack для работы по принципу LIFO («последним пришёл — перв…
  3. Sep 25, 2026Каждый Java-разработчик использует HashMap. Но задумывались ли вы… Почему его ёмкость всег…
  4. Sep 25, 2026Бесплатные ресурсы для изучения Java Конспект Effective Java — HugoMatilla/Effective-JAVA-…
  5. Sep 24, 2026Многие разработчики используют Java каждый день. Но мало кто знает, почему он стал одним и…
  6. Sep 24, 2026Java-разработчики, в чём разница между volatile и synchronized? Многие используют их. Но в…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →