Встречается на собеседованиях • сегодня
Как реализовать Optimistic Locking
Optimistic Locking предполагает, что конфликты редки, и проверяет версию записи перед обновлением. В Java обычно используется аннотация @Version в JPA/Hibernate.
Пример сущности:
java
@Entity
public class Account {
@Id
private Long id;
private BigDecimal balance;
@Version
private int version;
// getters/setters
}При обновлении:
- Читаем сущность (версия N)
- Изменяем данные
- При сохранении проверяется, что версия в БД == N
- Если версия изменилась - выбрасывается
OptimisticLockException
Преимущества:
- Нет блокировок в БД
- Хорошо для read-heavy систем
Недостатки:
- Нужно обрабатывать конфликты
- Не подходит для частых конкурентных изменений

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы