Что такое версия строки (row version) в SQL? Как используется в Hibernate?
Ответ от нейросети
sobes.tech AI
Версия строки (row version) в SQL — это специальное поле, которое используется для реализации оптимистической блокировки. Обычно это числовое поле или поле с типом timestamp/rowversion, которое обновляется при каждом изменении записи. Это позволяет обнаруживать конфликты при параллельном обновлении данных.
В Hibernate для поддержки оптимистической блокировки используется аннотация @Version. Hibernate автоматически увеличивает значение версии при каждом обновлении сущности. Если при сохранении версия в базе не совпадает с версией в памяти, Hibernate выбрасывает исключение OptimisticLockException, предотвращая потерю данных.
Пример использования в Hibernate:
@Entity
public class Product {
@Id
private Long id;
private String name;
@Version
private Integer version;
// геттеры и сеттеры
}
Таким образом, версия строки помогает контролировать конкурентный доступ к данным без явных блокировок.