当我在Hibernate中合并对象时会发生什么?
问题描述:
在我的项目,有些时候我需要加载的对象进行编辑。 在此之前,我认为,休眠会话是关闭的。当我在Hibernate中合并对象时会发生什么?
前一段时间保存编辑后的对象(saveOrUpdate
),我要搜索(再次公开会议)在数据库中的对象,并且,也许,这个搜索返回的对象是我会更新的对象。 (我需要这个对象的一些验证和其他东西......)
在此之后,当我尝试保存对象时,Hibernate说,我有一个会话相同标识的另一对象。
我已经实现了我自己的equals
和hashcode
方法,并且我试图做一些事情,比如session.evict(object)
,但没有任何效果。
所以,我用session.merge(object)
,而不是session.saveOrUpdate(object)
,和它的作品。 但是,我不知道到底是什么这样做的后果。通过merge
我可以简单的更换saveOrUpdate
,或者我会得到一些问题呢?我需要知道的另一件事是什么?
在此先感谢。
答
我认为这是What are the differences between Hibernate Session methods saveOrUpdate() and merge()? 重复和其他的一些问题,确实是很常见的问题......
是的,也许。但是,我仍然不明白什么是合并。就像,“是的,它合并的对象”,但是,如果一个人对象的名称,例如,是“卡洛斯”,而我把它更新为“jambriz”,他们究竟会持续存在,为什么?其他的事情,瀑布会发生什么? – caarlos0 2012-01-05 17:20:47