Как и в предыдущем ответе, вам всегда нужно проверять версию объекта перед сохранением.Hibernate или JPA имеют функции, называемые оптимистическая блокировка , чтобы решить эту проблему.Обратитесь к приведенному ниже коду и ссылке для получения дополнительной информации.
@Entity
public class Employee
{
@Id
@GeneratedValue
private Integer id;
@Version
private long version;
private String name;
}
При создании записи сотрудника инфраструктура автоматически создает значение версии.Сначала предположим, что значения
[1, 0, "name1"]
При обновлении оно меняется на
[1, 1, "name2"]
При следующем обновлении оно меняется на
[1, 2, "name3"]
фреймворк выдаст исключение, если вы попытаетесь обновить данные с неправильной версией
Ссылка содержит больше информации об этом https://www.logicbig.com/tutorials/java-ee-tutorial/jpa/optimistic-lock.html