Junior — Middle
Comment l'utilisation du verrouillage optimiste est-elle effectuée dans les systèmes de gestion des données?
sobes.tech IA
Réponse de l'IA
Оптимистическая блокировка используется для предотвращения конфликтов при одновременном доступе к данным без явного блокирования ресурсов.
Принцип работы:
- При чтении данных сохраняется версия или временная метка записи.
- Перед обновлением проверяется, что версия данных не изменилась с момента чтения.
- Если версия совпадает, обновление происходит; если нет — операция откатывается или повторяется.
В Java это часто реализуется через поле version в сущности и аннотацию @Version при использовании JPA/Hibernate.
Пример:
@Entity
public class Product {
@Id
private Long id;
private String name;
@Version
private int version;
// геттеры и сеттеры
}
При сохранении Hibernate проверит, что версия не изменилась, и если изменилась — выбросит исключение OptimisticLockException, что сигнализирует о конфликте обновления.