мы используем спящий режим с оптимистичной блокировкой.
Все наши объекты имеют аннотацию @version.
Это прекрасно работает, если пользователь пытается сохранить устаревший объект, мы получаем исключение stalestateexception.
В нашем случае мы хотели бы предоставить пользователю экран уведомлений, чтобы отменить его изменения или перезаписать текущие значения в базе данных.
Это распространенный вариант использования исключений устаревшего состояния.
Мой вопрос связан с этим вариантом использования. Какова лучшая стратегия, если пользователь решает перезаписать текущую строку базы данных своими изменениями? Я просмотрел справочное руководство по гибернации и различные веб-сайты, но все, что упоминается, - это тот факт, что вы должны уловить устаревшее исключение, а затем программно обработать перезапись данных.
Мне интересно, есть ли в hibernate какие-либо утилиты, упрощающие эту стратегию, простейшая вещь, с которой я могу столкнуться, если пользователь решит перезаписать свои данные, это извлечь последнюю версию сущности из базы данных, затем скопировать все измененные поля в этот объект и затем сохранение измененного объекта обратно в базу данных.
Но я не перестаю удивляться, если нет более элегантного решения.