Назад к вопросам
Junior — Middle
54
Каким образом осуществляется использование оптимистической блокировки в системах управления данными?
Компании, где спрашивали
ТБанк
Ответ от нейросети
sobes.tech AI
Оптимистическая блокировка используется для предотвращения конфликтов при одновременном доступе к данным без явного блокирования ресурсов.
Принцип работы:
- При чтении данных сохраняется версия или временная метка записи.
- Перед обновлением проверяется, что версия данных не изменилась с момента чтения.
- Если версия совпадает, обновление происходит; если нет — операция откатывается или повторяется.
В Java это часто реализуется через поле version в сущности и аннотацию @Version при использовании JPA/Hibernate.
Пример:
@Entity
public class Product {
@Id
private Long id;
private String name;
@Version
private int version;
// геттеры и сеттеры
}
При сохранении Hibernate проверит, что версия не изменилась, и если изменилась — выбросит исключение OptimisticLockException, что сигнализирует о конфликте обновления.