0

有时为了好的更新对象,我可以这样写:

session.merge(object);

但有时这还不够 我必须写

object1 = session.merge(object);
session.update(object1);

你能为我解释一下这些方式之间的区别吗?

4

1 回答 1

0

从休眠会话Javadoc:

  • 合并(对象 o)

    将给定对象的状态复制到具有相同标识符的持久对象上。如果当前没有与会话关联的持久实例,它将被加载。返回持久实例。如果给定实例未保存,则保存副本并将其作为新的持久实例返回。给定的实例不会与会话关联。如果关联映射为 ,则此操作级联到关联实例cascade="merge"

  • 更新(对象o)

    使用给定分离实例的标识符更新持久实例。如果存在具有相同标识符的持久实例,则会引发异常。如果关联映射为 ,则此操作级联到关联实例cascade="save-update"

在以下链接中,您可以找到有关以下内容的其他信息:

于 2013-09-17T08:25:45.070 回答