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