保存对象报错with two open Sessions

代码‘purorderService.save(newpur)’出现‘org.springframework.orm.hibernate3.HibernateSystemException’异常,原因是在session缓存中有两个标识相同的对象。解决方法是更换方法为‘purorderService.saveMerge(newpur)’,还介绍了merge和update方法的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

purorderService.save(newpur);
出现如下

org.springframework.orm.hibernate3.HibernateSystemException: illegally attempted to associate a proxy with two open Sessions;

nested exception is org.hibernate.HibernateException: illegally attempted to associate a proxy with two open Sessions

解决方法:

更换方法:purorderService.saveMerge(newpur);

illegally attempted to associate a proxy with two open Sessions
在session缓存中以两个标识相同的对象
使用merge方法
merge方法在执行之前都回去缓存中找是不是有相应的记录,也就是会有一条select语句,执行改语句的目的是为了判断该对象是否被修改了。而update就不管这些,直接就一条update语句。

 

转载于:https://www.cnblogs.com/mangwusuozhi/p/9565476.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值