spring 事务传播
参考:https://zhuanlan.zhihu.com/p/148504094
spring 事务有七种传播机制:
reuqired
:需要以事务运行,如果当前存在能在事务,则在当前事务运行,如果没有则自己开一个事务。required_new
:不管当前事务存不存在,都会新开一个事务,并且这个事务是独立的。也就是说,当前事务的回滚不会影响外部事务。supports
:当前存在事务,则加入当前事务,没有以非事务运行。not_supported
:始终以非事务方式执行,如果当前存在事务,则挂起当前事务。mandatory
:强制以事务执行,当前事务不存在则抛出异常。never
:不使用事务,如果当前存在事务,抛出异常。nested
:如果当前事务存在,则嵌套在该事务执行,调用方其实可以通过 catch 捕获被调用方的异常,那么当嵌套的子事务回滚时,父事务不会回滚。