Junior — Middle
¿Cómo se realiza el uso del bloqueo optimista en los sistemas de gestión de datos?
sobes.tech AI
Respuesta de la IA
Оптимистическая блокировка используется для предотвращения конфликтов при одновременном доступе к данным без явного блокирования ресурсов.
Принцип работы:
- При чтении данных сохраняется версия или временная метка записи.
- Перед обновлением проверяется, что версия данных не изменилась с момента чтения.
- Если версия совпадает, обновление происходит; если нет — операция откатывается или повторяется.
В Java это часто реализуется через поле version в сущности и аннотацию @Version при использовании JPA/Hibernate.
Пример:
@Entity
public class Product {
@Id
private Long id;
private String name;
@Version
private int version;
// геттеры и сеттеры
}
При сохранении Hibernate проверит, что версия не изменилась, и если изменилась — выбросит исключение OptimisticLockException, что сигнализирует о конфликте обновления.