@Transactional
1.REQUIRED----无事务新建事务,有则加入这个事务
2.SUPPORTS----支持当前事务,无事务就以非事务方式执行;注意,如有外部存在事务,加入事务,无则省略
3.MANDATORY----支持当前事务,当前不存在事务,则抛出异常
4.REQUIRES_NEW----存在事务则挂起,重新创建新事物执行,直至事务提交或回滚,原来的事务才会恢复执行
5.NOT_SUPPORTED---以非事务方式执行,如操作在一个事务中,事务挂起,操作完成后才会恢复事务的执行
6.NEVER----以非事务方式执行,存在事务则抛出异常
有些简单的需要用到下面的就可以解决:
@Transactional(propagation = Propagation.REQUIRES_NEW)
@DSTransactional
2.另一种方式最后我们可以改为另外一种优雅的实现注:@DSTransactional注解原理
dynamic-datasource包为我们提供了一种更为优雅,开箱即用的注解,即@DSTransactional。
具体实现原理如下:
https://www.cnblogs.com/zhaobo1997/p/17976348