Как использовать Быть в спящем режиме оптимистического свойства версии блокировки на фронтэнде?

Противостоять совету Dillie-O. Я предложил бы, чтобы Вы не делали , помещает все Ваши поиски в одну таблицу. В целом это - попытка вызвать дизайн OO в Реляционную базу данных. Это может быть сделано, и это соответствует мировоззрению разработчика OO, но это приводит к нанесению вреда проектированиям баз данных.

Возврат к Google и поиску "Таблиц НАВОЗА", которые приводят Вас к обсуждениям В широком масштабе Объединенных Ключевых для кода Таблиц. С другой стороны, можно искать "одну истинную таблицу поиска" для обсуждений. Или даже прочитайте статью Joe Celko Одна Истинная Таблица поиска .

12
задан les2 14 September 2009 в 18:59
поделиться

1 ответ

Вам действительно нужно использовать DTO? У вас не было бы этой проблемы, если бы вы передавали реальный объект - и вам не пришлось бы снова загружать объект, что не совсем хорошо для производительности.

Но даже если у вас есть законная причина для использования DTO, я не совсем понимаю, почему вы пытаетесь обновить номер версии на своем только что перезагруженном объекте перед сохранением. Рассмотрим различные сценарии вашего рабочего процесса:

  1. Сущность загружена изначально, имеет версию = V1
  2. Она передана в DTO, которая переходит в пользовательский интерфейс, возвращается и готова к сохранению.
  3. Сущность загружается снова, имеет версию = V2

У вас есть теперь две возможности:

  1. V1 == V2. Пичи, тебе не нужно ничего делать.
  2. V1 меньше, чем V2, это означает, что объект был обновлен кем-то другим, пока вы его редактировали. Нет причин пытаться установить версию V1 и пытаться сохранить, потому что сохранение не удастся. Вы можете либо сохранить его с помощью V2 (таким образом отменив чужие изменения), либо выйти из строя сейчас (без использования Hibernate).
11
ответ дан 2 December 2019 в 22:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: