事务的传播机制(以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挂起等等,事务传播机制就是开控制这样的事务如何执行。