Как правильно обрабатывать оптимистичную блокировку с помощью данных Spring JPA и REST APIJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как правильно обрабатывать оптимистичную блокировку с помощью данных Spring JPA и REST API

Сообщение Anonymous »

Я использую Spring Boot 3.5 и добавил поле @version в мою сущность. Все это работает нормально, но мне интересно, как мне нужно обрабатывать параллельные обновления, поступающие из REST API. Они оба видят версию 1 моего объекта. Через минуту или около того 2 -й пользователь сохраняет свои изменения. Я хочу вернуть конфликт 409 на тот момент.

Код: Выделить всё

@Component
class UpdateMyEntity {

private final MyEntityRepository repo;

public UpdateMyEntity(MyEntityRepository repo) {
this.repo = repo;
}

public MyEntity execute(MyEntityUpdateParameters parameters) {
MyEntity item = repo.findById(parameters.id()).orElseThrow();

item.setName(parameters.name());

return repo.save(item);
}
Сначала я попытался установить версию на MyEntity , но JPA/Hibernate не учитывает это. Или есть способ, чтобы база данных или JPA обрабатывали это?

Подробнее здесь: https://stackoverflow.com/questions/797 ... d-rest-api
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»