Есть ли в спящем режиме настройка для игнорирования нулевых значений свойств при сохранении объекта гибернации?
ПРИМЕЧАНИЕ
В моем случае я десериализую JSON в Hibernate Pojo через Джексона.
JSON содержит только некоторые поля Pojo. Если я сохраню Pojo, поля, которых не было в JSON, будут нулевыми в Pojo, и спящий режим ОБНОВЛЯЕТ их.
Я наткнулся на настройку updateable=false
, но это не 100% решение. http://docs.jboss.org/hibernate/stable/annotations/reference/en/html_single/#entity-mapping-property
Может у кого есть другая идея...
ПРИМЕЧАНИЕ 2:
Согласно Hibernate Docs, dynamicUpdate
аннотация делает именно это
dynamicInsert / dynamicUpdate (по умолчанию false):
указывает, что INSERT / UPDATE SQL должен генерироваться во время выполнения и содержать только те столбцы, значения которых не равны нулю.
http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/#mapping-declaration-class
Достаточно забавно, если вы определяете его в XML через dynamic-update
, в документе не упоминается обработка значений NULL.
dynamic-update (необязательный - по умолчанию false):
указывает, что UPDATE SQL должен > генерироваться во время выполнения и может содержать только те столбцы, значения которых изменились.
Из-за того, что я использую обе аннотации И конфигурации xml, спящий режим, похоже, игнорирует мою аннотацию dynamicUpdate=true
.