Junior — Middle
120
JPA'da @Version anotasyonunun amacı nedir ve veriye eşzamanlı erişim yönetimini nasıl etkiler?
AI'dan gelen yanıt
sobes.tech yapay zeka
Аннотация @Version в JPA используется для реализации механизма оптимистической блокировки. Она помечает поле сущности, которое хранит версию записи (обычно целочисленное или временное значение). При обновлении записи JPA проверяет, что версия в базе совпадает с версией в объекте, чтобы убедиться, что данные не были изменены другим транзакционным потоком.
Если версии не совпадают, выбрасывается исключение OptimisticLockException, что предотвращает перезапись данных, изменённых параллельно. Это помогает управлять конкурентным доступом без использования блокировок на уровне базы.
Пример:
@Entity
public class Product {
@Id
private Long id;
@Version
private Integer version;
private String name;
// геттеры и сеттеры
}
Здесь поле version автоматически обновляется при каждом изменении сущности, обеспечивая контроль версий.