spring事务传播机制

127 阅读1分钟

事务的传播机制(以A调用B为例)

1.required(默认)

A有则B加入A事务
A没有则B新建一个事务

2.required_new

A有则B新建一个事务,两个事务相互独立,外部事务A抛异常回滚不会影响内部事务B的正常提交。
A没有则B新建一个事务;

3.nested

如果A有事务新建B事务为A的子事务,A的回滚会导致B的回滚,B的回滚不会影响A的提交
如果A没有,则B新建一个事务

4.supports(支持)

如果A存在事务,则B加入A事务
如果A不存在事务,则B也无事务

5.not_supported(不支持)

如果A存在事务,则A事务挂起,B以无事务执行
如果A不存在事务,则B以无事务方式执行

6.manDatory

强制事务执行,如果A没有事务则抛出异常
如果A有事务,B就加入A

7.never

 非事务方式执行,如果A有事务则抛出异常

面试回答:spring的事务传播机制指的是多个事务的方法在相互调用时,事务是如何在这些方法间传播的,比如A方法开启了事务调用B方法,B未开启事务,那么B事务应该如何执行,是加入A中还是A挂起等等,事务传播机制就是开控制这样的事务如何执行。

image.png