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