日期:2014-05-19  浏览次数:20620 次

求教 saveOrupdate和 merge的区别
刚做的一个功能,保存对象时 用saveOrupdate() 保存好像只能保存某些字段,用merge 能把所有信息保存!怎么个情况?大概的知道 saveOrupdate和 merge的区别,前者是保存成持久化对象,后者是保存成托管对象,但是为什么会出现上述情况呢? 请诸位大神 不吝赐教!

------解决方案--------------------
如果session中存在相同持久化标识(identifier)的实例,用用户给出的对象覆盖session已有的持久实例 
(1)当我们使用update的时候,执行完成后,会抛出异常 
(2)但当我们使用merge的时候,把处理自由态的po对象A的属性copy到session当中处于持久态的po的属性中,执行完成后原来是持久状态还是持久态,而我们提供的A还是自由态