gpt4 book ai didi

hibernate - 如何防止Hibernate更新NULL值

转载 作者:行者123 更新时间:2023-12-03 13:35:24 44 4
gpt4 key购买 nike

保存休眠对象时,休眠中是否存在设置忽略属性的空值的设置?

注意
就我而言,我正在通过Jackson将JSON反序列化为Hibernate Pojo。

JSON仅包含Pojo的某些字段。如果保存Pojo,则不在Pojo中的JSON中不包含的字段为null,然后休眠更新它们。

我遇到了设置updateable=false,但这不是100%的解决方案。
http://docs.jboss.org/hibernate/stable/annotations/reference/en/html_single/#entity-mapping-property

也许有人有另一个主意...

注2:

根据Hibernate Docs,dynamicUpdate 批注确实做到了这一点

dynamicInsert / dynamicUpdate (defaults to false):
specifies that INSERT / UPDATE SQL should be generated at runtime and contain only the columns whose values are not null.



http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/#mapping-declaration-class

如果您通过 dynamic-update在XML中定义它,则很有趣,文档中没有提到对NULL值的处理。

dynamic-update (optional - defaults to false):
specifies that UPDATE SQL should be > generated at runtime and can contain only those columns whose values have changed.



由于我同时使用了 这两个注解,因此hibernate似乎忽略了我的 dynamicUpdate=true注解。

最佳答案

您应该首先使用数据库中的主键加载对象,然后在其顶部复制或反序列化JSON。

休眠方式无法确定值null的属性是否已显式设置为该值或已排除。

如果是插入内容,则dynamic-insert = true应该起作用。

关于hibernate - 如何防止Hibernate更新NULL值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7517546/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com