springboot版本:2.0.1.RELEASE
问题:发生多数据源事务回滚失效现象
原因:在某个数据源上加了@Primary注解,然后需要回滚的service方法是另一个数据源的数据
解决方法:在当前的方法上指明需要使用的事务的名称,即
@Transactional("abcTransactionManager")
PS:
1、有网友说在2.0版本之后,不再需要在数据源上加@Primary注解,未验证该说法。
2、如果你的异常被手动try{}catch{}了,事务则不会回滚,系统会认为你已经手动进行了异常处理,如果想让事务回滚必须往外抛throw Exception,已验证。