Оптимистическая блокировка в приложении RESTful

На работе мыповторная разработка приложения RESTful, где уровень данных будет обрабатываться Hibernate. Но мы'Вы не знаете, как обрабатывать обновления на объектах.

Мы'повторно планируем сделать следующее:

1) клиент запрашивает сущность по id

2) Hibernate загружает объект, запрошенные поля (всегда с версией) копируются в DTO, который преобразуется в JSON и отправляется клиенту

3) Клиент управляет некоторыми полями и отправляет объект (с номером версии) обратно на сервер.

4) Сервер получает JSON, который преобразуется в DTO.

5) Соответствующий объект загружается из Hibernate и DTO 's реквизиты копируются в сущность. =>

 Сущность всегда перезаписывается, даже если был установлен номер версии клиента. Означает ли это, что мы всегда должны сами проверять номер версии клиента по номеру версии загруженного экземпляра, а не делать это в Hibernate?

В обычном приложении с сессиями отдельный экземпляр сохраняется в HttpSession. Всякий раз, когда клиент обновляет объект, экземпляр извлекается из HttpSession, а некоторые атрибуты обновляются. Всякий раз, когда Hibernate фиксирует обновление, выдается исключение ObjectStaleException, если номер версии < номер текущей версии.

Проблема в том, что мы неу меня нет Http-сессии, потому что мыпытаемся быть ОТДЫХАМИ.

Есть ли общее решение для обработки оптимистической блокировки в приложениях RESTful вместо того, чтобы самим проверять номера версий?

Ответы на вопрос(2)

Ваш ответ на вопрос