Используя динамическое обновление или динамичный - вставляют, имеет положительный, хотя обычно небольшой только на производительности, равно как и упомянуто http://www.mkyong.com/hibernate/hibernate-dynamic-update-attribute-example/
Но справочная документация упоминает, что это могло иметь отрицательные эффекты производительности также, как упомянуто ниже в http://docs.jboss.org/hibernate/core/3.3/reference/en/html/mapping.html#mapping-declaration-class:
Хотя эти настройки могут увеличить производительность в некоторых случаях, они могут на самом деле уменьшить производительность в других.
Кто-либо может предложить некоторый пример/сценарий, упомянув отрицательное влияние производительности того же?
Hibernate кэширует фактические строки INSERT/SELECT/UPDATE SQL для каждой сущности, и очевидным преимуществом является то, что ему не нужно вычислять SQL, когда вы хотите сохранить, найти или обновить сущность.
Однако при использовании dynamic-insert или dynamic-update Hibernate должен каждый раз генерировать соответствующую строку SQL, что приводит к снижению производительности на стороне Hibernate.
Другими словами, существует компромисс между накладными расходами на стороне базы данных и на стороне Hibernate.
Моя точка зрения заключается в том, что динамическая вставка и динамическое обновление могут быть интересны для таблиц с толстым столбцом blob или таблиц с огромным количеством столбцов. В других случаях я не убежден, что динамическая вставка или обновление всегда означают увеличение производительности (я не использую их по умолчанию). Но, как всегда, вы должны измерить это.