Junior — Middle
107
Ați folosit mecanismul de Blocare Optimistă în timpul dezvoltării cu Spring și cum se implementează?
Companiile au fost întrebate
Răspuns de la AI
sobes.tech AI
Оптимистичная блокировка (Optimistic Locking) в Spring обычно реализуется с помощью аннотации @Version в JPA-сущностях. Она позволяет избежать конфликтов при одновременном обновлении данных несколькими транзакциями без явного блокирования записей в базе.
Принцип работы: при каждом обновлении записи версия увеличивается. Если при сохранении версия в базе не совпадает с версией объекта, значит, данные были изменены другим процессом, и выбрасывается исключение OptimisticLockException.
Пример:
@Entity
public class Product {
@Id
private Long id;
private String name;
@Version
private Integer version;
// геттеры и сеттеры
}
При использовании репозитория Spring Data JPA, если две транзакции одновременно пытаются обновить один и тот же объект, одна из них получит исключение, что позволит корректно обработать конфликт.