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

问题描述:

在我的项目,有些时候我需要加载的对象进行编辑。 在此之前,我认为,休眠会话是关闭的。当我在Hibernate中合并对象时会发生什么?

前一段时间保存编辑后的对象(saveOrUpdate),我要搜索(再次公开会议)在数据库中的对象,并且,也许,这个搜索返回的对象是我会更新的对象。 (我需要这个对象的一些验证和其他东西......)

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

我已经实现了我自己的equalshashcode方法,并且我试图做一些事情,比如session.evict(object),但没有任何效果。

所以,我用session.merge(object),而不是session.saveOrUpdate(object),和它的作品。 但是,我不知道到底是什么这样做的后果。通过merge我可以简单的更换saveOrUpdate,或者我会得到一些问题呢?我需要知道的另一件事是什么?

在此先感谢。

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

+0

是的,也许。但是,我仍然不明白什么是合并。就像,“是的,它合并的对象”,但是,如果一个人对象的名称,例如,是“卡洛斯”,而我把它更新为“jambriz”,他们究竟会持续存在,为什么?其他的事情,瀑布会发生什么? – caarlos0 2012-01-05 17:20:47