我正在开发一个网络项目,我想将用户更新到数据库中。
在编写代码时,我发现如果用作
getHibernateTemplate().update(user) “非法尝试将集合与两个打开的会话关联起来;”
但如果我尝试使用相同的getHibernateTemplate().merge(user);
它工作得很好。
这两者有什么区别?公开会议到底意味着什么?
Merge可以跨会话工作,而update仅适用于同一会话。
虽然两者都用于将处于分离状态的对象转换为持久状态,但更新仅在同一会话中才有效,而合并即使在不同会话中也有效。
了解更多info http://www.java4s.com/hibernate/difference-between-merge-and-update-methods-in-hibernate/.
通过打开会话,这意味着您当前正在同一会话中执行操作(即关闭会话之前)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)