@Transactional注解事务失效的七种原因分析
如果先调用deleteUser(),那么deleteUserA()是不会回滚的,其原因就是@Transactional根本没生成代理,如果直接调用deleteUser2()那么没问题,deleteUserA()会回滚。如下的方式deleteUserA()也不会回滚,因为spring实现事务的原理是通过ThreadLocal把数据库连接绑定到当前线程中,新开启一个线程获取到的连接就不是同一个了。当异常被捕获后,并且没有再抛出,那么deleteUserA是不会回滚的。修改方式,把当前类自己注入一下调用即可。








