【发布时间】:2013-02-08 15:43:16
【问题描述】:
我正在使用 Hibernate 4.1.7.Final 并尝试使用 session.merge(entity) 方法更新对象。实体注释为:
@SelectBeforeUpdate(true) 和 @DynamicUpdate(true)
但是,我发现 merge 方法会用来自被合并实体的空值覆盖原始非空字段(在先前持久化的实体中)——这是我不想要的。我以为@DynamicUpdate 只会更新非空值。
Hibernate docs中对merge方法的描述是:
将给定对象的状态复制到持久对象上 相同的标识符。如果当前没有持久化实例 与会话关联,它将被加载。返回持久的 实例。如果给定实例未保存,则保存副本并返回 它作为一个新的持久实例。给定的实例不会变成 与会话相关联。此操作级联到关联 如果关联映射为 cascade="merge"
的实例
有什么想法吗?
谢谢。
【问题讨论】:
标签: hibernate