一个需求,最开始打算用多线程分别插入多个库,埋了 int a=1/0测试回滚,结果发现并没有回滚
如果要用手动控制事务的提交,那就得自己起多个事务,手动写sql,手动提交回滚,代价比较大。有什么好方法?
后面改成单线程调用service的@Transactional方法,结果踩坑没回滚
原因:线程调用自身类的方法,并不会用到spring aop的代理类,所以只是执行了一个普普通通的方法。
解决方案:用@Resource注入一个service进来,再用线程去调用这个service的方法,这样就可以了