关于多次启动事务时改变Session中的对象存入了数据库的解决方案

首先说明一下小编在做项目的时候遇到的棘手的问题:  使用递归展现添加和修改页面中树状的上级的的部门列表

此处是添加部门代码,并没有什么异常但是在接下来的用户信息就会产生异常了。


这就是产生的异常情况,另外可以发现下面的图中的所属部门的值已经改变,说明数据库中的值已经发生了改变。

而且无论点击新建或是修改,每点击一次或刷新都会导致“┣”的增加。



造成异常的原因分析:


当一个action中存在两次及其以上的开启事务的情况时,如果使Session对象中数据进行了改变,Session中的持久层就会更新到数据库中,进而改变了原来的数据。如何不改变Session对象同时还可以将里面的数据改变并且显示出来。


解决方案:

现在的解决问题就是如何不改变Session,于是乎使用副本拷贝一份Session,这时随便操作副本,因为它与数据库没有任何关系。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值