У меня есть бэкэнд для отдыха с Java и Hibernate и им, используя Оптимистическую блокировку с свойством версии. Для контроля параллелизма это свойство версии должно перейти к клиенту и снова к серверу с почтовым запросом. Но, в яваскрипте клиента я потерять контроль над целостностью этого свойства, например:Как обеспечить, чтобы номер версии спящего режима оставался неизменным в javascript-клиенте?
- Клиент «А» просит свой ресурс 1.
- Клиент «B» запрашивает тот же ресурс.
- Сервер отвечает ресурсом 1 версии 1 на оба клиента (в их соответствующих ответах)
- Клиент «А» изменяет ресурс и создает сообщение для сохранения изменений.
- Сервер обрабатывает почтовый запрос и Hibernate проверяет номер версии. 1 = 1, чтобы ресурс был изменен.
- Клиент B играет с javascript и изменяет свойство версии на 2 и делает запрос на отправку. Сервер обрабатывает почтовый запрос, а теперь 2 = 2, поэтому ресурс изменяется и изменения, сделанные клиентом A, теряются.
Помните, что это резервный сервер, поэтому я не могу сохранить на сервере номер версии объектов, которые были доставлены каждому пользователю, o что-то вроде этого.
Итак, если это правильный вопрос, как я считаю, как я могу гарантировать, что версия остается неизменной в клиенте?
Спасибо @ Briguy37, ответ McCroskey заставил меня подумать, и я понял, что мой вопрос глуп, и вы подтвердили. Я никогда не получу контроль над свойством версии, которое входит в запрос в мое приложение для отдыха. Если я должен защитить свою сущность от обновления, я должен сделать это с моей логической областью. – gabrielgiussi
@gabrielgiussi Как говорится в клише: «Нет такого понятия, как глупый вопрос» :) Хорошо, что у вас есть управление версиями и что вы думаете о том, как улучшить целостность данных. Так держать! – Briguy37