Spring事务传播行为(由应用程序自己管理,它决定了事务如何在应用程序中传播,一般总是由底层框架来完成):
1、PROPAGATION_REQUIRED:必须在事务内执行,如果当前存在事务,就加入到当前事务中;如果当前没有事务,就创建一个事务。这是最常见的选择,也是Spring默认的事务传播行为。
2、PROPAGATION_SUPPORTS:支持当前事务,但如果当前没有事务,也可以以非事务方式执行。
3、PROPAGATION_MANDATORY:必须在当前事务内执行,如果当前没有事务就抛出异常。
4、PROPAGATION_REQUIRES_NEW:总是新建一个事务,如果当前存在事务,就把当前事务挂起,直到新事物执行完毕。
5、PROPAGATION_NOT_SUPPORTS:不能在事务环境下执行,如果当前存在事务,就把当前事务挂起。
6、PROPAGATION_NEVER:不能在事务环境下执行,如果当前存在事务,就直接抛出异常。
7、PROPAGATION_NESTEDA:必须在事务内执行,如果当前存在事务,则在嵌套事务内执行;如果当前没有事务,则执行与PROPAGATION_REQUIRED类似的操作。