gpt4 book ai didi

java - getHibernateTemplate().update 和 getHibernateTemplate().merge 有什么区别

转载 作者:行者123 更新时间:2023-12-02 11:07:30 29 4
gpt4 key购买 nike

我正在开发一个网络项目,我想将用户更新到数据库中。在编写代码时,我发现如果用作

则会出错

getHibernateTemplate().update(user) that "Illegal attempt to associate a collection with two open sessions;"

但是如果我使用 getHibernateTemplate().merge(user); 尝试相同的操作,它就完美地工作了。这两者有什么区别?开放 session 到底意味着什么?

最佳答案

合并可以跨 session 工作,而更新仅适用于同一 session 。

虽然两者都用于将处于分离状态的对象转换为持久状态,但更新仅在同一 session 中才有效,而合并即使在不同 session 中也有效。

了解更多info .

打开 session 意味着您当前正在同一 session 中执行操作(即关闭 session 之前)

关于java - getHibernateTemplate().update 和 getHibernateTemplate().merge 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20629894/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com