1

我会说到点子上。我是HibernateJPA 的新手。我不知道 Hibernate update()API 和 JPA merge()API 之间的区别。这两个API之间有什么区别吗?

4

3 回答 3

1

检查这两个链接,SaveOrUpdate vs Merge in HibernateHibernate:Merge vs SaveOrUpdate

于 2013-01-18T10:04:51.473 回答
0
  • 更新

    • 在瞬态:异常
    • 在分离状态:
      • 如果附加的实例已经存在:异常
      • 否则更新持久状态并附加给定的实例
  • 合并

    • 在瞬态:更新持久状态,返回一个附加的实例,让给定的实例保持不变(和分离)
    • 在分离状态:
      • 如果附加实例已经存在:将给定分离实例的值复制到附加实例,让给定实例保持不变(并分离)
      • 否则更新持久状态,返回一个附加的实例,让给定的实例保持不变(和分离)

另请参见分离实例上的休眠更新与 JPA 合并

于 2014-03-17T16:11:41.903 回答
0

update() 方法可用于持久和分离状态的对象。但是,实际上我无法想象在持久状态下使用 update() 的场景,其中您将对象加载到会话中修改它并在同一会话中使用 update()。

就 merge() 而言,它仅用于分离的对象。update() 和 merge() 方法在分离状态下的工作方式略有不同。此差异通过以下位置的示例进行了详细说明:

http://javahotpot.blogspot.in/2014/03/hibernate-difference-between-update-and.html

于 2014-03-30T09:02:40.120 回答