Настройка обновления и вставки свойства в Hibernate - PullRequest
11 голосов
/ 09 марта 2012

Для чего нужны следующие свойства в файле hibernate HBM?

update = "false"
insert = "false"

Какую цель они служат? Как они влияют на производительность? Когда мы должны их использовать?

Ответы [ 2 ]

11 голосов
/ 30 января 2013

Используйте update = "false", insert = "false", когда свойство вычисляется / выводится, или когда база данных или триггеры отвечают за вставку / или обновление значения.

Например, еслиDB автоматически сгенерирует значение на INSERT, которое вы хотите использовать, а затем укажите insert = "false", чтобы Hibernate не включал свойство в операторы INSERT.

Другим примером будет вычисленное / производное свойство с помощьюФормула SQL: например, вы можете получить сумму итогов для каждого клиента.Например:

<property name="totalOrders" insert="false" update="false">
  <formula>(select sum(ORDER.TOTAL) from ORDER where ORDER.FK_CUSTOMER=ID)</formula>
</property>

В этом случае мы устанавливаем insert = "false", update = "false", поскольку это явно производный результат, и мы не можем обновить его напрямую.

Спектакль?Дело не в производительности, а в том, что требуется для сопоставления вашей базы данных.

7 голосов
/ 09 марта 2012

С документация :

update, insert (необязательно - по умолчанию true): указывает, что сопоставленные столбцы должны быть включены в SQL UPDATE и / или INSERT заявления. Установка обоих в false разрешает чистое «производное» свойство значение которого инициализируется из некоторого другого свойства, которое отображается на тот же столбец (столбцы) или с помощью триггера или другого приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...