Я использую Spring Boot 3.5 и добавил поле @version в мою сущность. Все работает нормально, но мне интересно, как мне нужно обрабатывать параллельные обновления, поступающие из API REST. Они оба видят версию 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