Spring事务的传播

1、@Transactional(propagation = Propagation.REQUIRED) (默认)

使用当前事务。如果当前没有事务则自己新建一个事务,如果当前有事务则加入这个事务。

2、@Transactional(propagation = Propagation.SUPPORTS)

如果当前有事务,则使用当前事务,如果当前没有事务,则不使用事务。

3、@Transactional(propagation = Propagation.MANDATORY)

该传播属性强制必须使用事务,如果不存在事务,则抛出异常。

4、@Transactional(propagation = Propagation.REQUIRES_NEW)

如果当前有事务,则挂起该事务,自己新建一个事务用。

5、@Transactional(propagation = Propagation.NOT_SUPPORTED)

如果当前有事务,则挂起该事务,不执行事务。

6、@Transactional(propagation = Propagation.NEVER)

如果当前存在事务,则抛出异常。

7、@Transactional(propagation = Propagation.NESTED)

如果当前有事务,则会开启一个子事务(即嵌套事务,子事务独立提交或回滚,如果主事务提交或回滚,会携带子事务一起提交或回滚 );如果当前没有事务,则等同于REQUIRED。

posted @ 2021-08-10 11:35  金盛年华  阅读(66)  评论(0)    收藏  举报