记spring线程调用事务不回滚的坑

一个需求,最开始打算用多线程分别插入多个库,埋了 int a=1/0测试回滚,结果发现并没有回滚

如果要用手动控制事务的提交,那就得自己起多个事务,手动写sql,手动提交回滚,代价比较大。有什么好方法?

后面改成单线程调用service的@Transactional方法,结果踩坑没回滚

原因:线程调用自身类的方法,并不会用到spring aop的代理类,所以只是执行了一个普普通通的方法。

解决方案:用@Resource注入一个service进来,再用线程去调用这个service的方法,这样就可以了

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章