SSH整合遇到的bug(一)org.hibernate.TransactionException: nested transactions not supported

出现这个bug的在做修改功能的时候出现,第一次修改提交后,第二次所有的请求都发不出去,代码获取session用的是open,于是修改为getCurrentSession();之后出现如上错误,百度方法如下:

方法:解决方法是去掉

session.beginTransation();

session.getTransaction().commit();

这样问题就解决了!

可是这样还是会报错,Could not obtain transaction-synchronized Session for current thread  继续百度,如下:

方法:在dao层加上@Transaction注解,再运行ok了


加上注解后再次出现 nested transactions not supported,继续百度,如下

方法:session一直存在,那么,这个session获取的事务,只要有一处完成了开启,那么后期处理的时候,全部都是开启的。无需再次开启。否则就会引起事务嵌套问题而报错。

- 问题的关键在于分清楚,到底谁是目标方法,其它的切面以及advisor的执行时机。


于是删除dao层代码中的所有tx = session.beginTransaction();


项目至此不在出错!不明所以,只知能用


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值