当我在Hibernate中合并一个对象时会发生什么?

时间:2012-01-05 16:38:49

标签: java hibernate

在我的项目中,有时我需要加载一个对象来编辑它们。 在此之前,我认为,hibernate会话已经关闭。

在保存编辑对象(使用saveOrUpdate)之前的某个时间,我必须搜索(再次打开会话)数据库中的对象,并且,此搜索返回的对象可能是对象I'我会更新。 (我需要这个对象进行一些验证和其他事情......)

在此之后,当我尝试保存对象时,hibernate说我在会话中有另一个具有相同标识符的对象。

我已经实施了自己的equalshashcode方法,我尝试过做一些事情,比如session.evict(object),但是,没有任何作用。

所以,我使用session.merge(object)而不是session.saveOrUpdate(object),并且它有效。 但是,我不确切知道这样做的后果是什么。我可以简单地将saveOrUpdate替换为merge,否则我会遇到一些问题?关于这个我还有其他的事情要知道吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

我认为这是What are the differences between Hibernate Session methods saveOrUpdate() and merge()?的重复 还有其他一些问题,确实是非常常见的问题......