1. spring中几种事务的传播机制
PROPAGATION_REQUIRED
含义
支持当前事务,如果不存在 就新建一个
可满足的外围运行环境
外围方法可不添加任何注解,亦可添加任何注解, 内面的方法终会运行于事务之中 (没有江山,自己打江山;有江山,直接继承江山)
PROPAGATION_SUPPORTS
含义
支持当前事务,如果不存在,就不使用事务
方法运行的所需环境
外围方法可不添加任何注解,亦可添加任何注解(有江山,直接继承江山;没有,不勉强)
PROPAGATION_MANDATORY
含义
支持当前事务,如果不存在,抛出异常
方法运行的所需环境
外围方法必须保证能够在事务中运行(有江山,直接继承江山;没有,则发起叛乱)
PROPAGATION_REQUIRED_NEW
含义
如果有事务存在,挂起当前事务,创建一个新的事务
方法运行的所需环境
外围方法可不添加任何注解,亦可添加任何注解(无论有无江山,自己都要打江山)
PROPAGATION_NOT_SUPPORTED
含义
以非事务方式运行,如果有事务存在,挂起当前事务
方法运行的所需环境
外围方法可不添加任何注解,亦可添加任何注解(有江山,直接放弃江山;没有,则正好)
PROPAGATION_NEVER
含义
以非事务方式运行,如果有事务存在,抛出异常
方法运行的所需环境
外围方法必须保证不在事务中运行(有江山,内部发起叛乱,颠覆江山;没有,则正好)
PROPAGATION_NESTED
含义
如果当前事务存在,则嵌套事务执行,外部事务回滚,内部事务也跟着回滚,内部事务回滚,外部事物不一定回滚
方法运行的所需环境
外围方法可不添加任何注解,亦可添加任何注解
参考文章