hibernate 中是否有设置在保存休眠对象时忽略属性的空值?
注意
在我的例子中,我通过 Jackson 将 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 应在运行时生成,并且仅包含值不为 null的列。
http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/#mapping-declaration-class
有趣的是,如果您通过dynamic-update
文档在 XML 中定义它,请不要提及 NULL 值的处理。
动态更新(可选 - 默认为 false):
指定 UPDATE SQL 应该 > 在运行时生成,并且只能包含值已更改的那些列。
由于我同时使用注释和xml 配置,hibernate 似乎忽略了我的dynamicUpdate=true
注释。