有时为了更好的更新对象,我可以这样写:
session.merge(object);
但有时候这还不够我必须写
object1 = session.merge(object);
session.update(object1);
你能解释一下这种方式之间的差异吗?
答案 0 :(得分:0)
来自Hibernate Session Javadoc:
将给定对象的状态复制到具有相同标识符的持久对象上。如果当前没有与会话关联的持久性实例,则将加载该实例。返回持久化实例。如果给定实例未保存,请保存副本并将其作为新的持久实例返回。给定的实例不会与会话关联。如果关联与cascade="merge"
映射,则此操作会级联到关联的实例。
使用给定分离实例的标识符更新持久化实例。如果存在具有相同标识符的持久性实例,则抛出异常。如果关联与cascade="save-update"
映射,则此操作会级联到关联的实例。
在以下链接中,您可以找到有关以下内容的其他信息: