我会说到点子上。我是Hibernate
JPA 的新手。我不知道 Hibernate update()
API 和 JPA merge()
API 之间的区别。这两个API之间有什么区别吗?
问问题
2050 次
3 回答
1
于 2013-01-18T10:04:51.473 回答
0
更新
- 在瞬态:异常
- 在分离状态:
- 如果附加的实例已经存在:异常
- 否则更新持久状态并附加给定的实例
合并
- 在瞬态:更新持久状态,返回一个附加的实例,让给定的实例保持不变(和分离)
- 在分离状态:
- 如果附加实例已经存在:将给定分离实例的值复制到附加实例,让给定实例保持不变(并分离)
- 否则更新持久状态,返回一个附加的实例,让给定的实例保持不变(和分离)
于 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 回答