Spring:事务传播机制

发布于 2021-09-13  756 次阅读


Required:必须的。说明必须要有事物,没有就新建事物。

supports:支持。说明仅仅是支持事务,没有事务就非事务方式执行。

mandatory:强制的。说明一定要有事务,没有事务就抛出异常。

required_new:必须新建事物。如果当前存在事物就挂起。

not_supported:不支持事物,如果存在事物就挂起。

never:绝不有事务。如果存在事物就抛出异常

传播行为意义
PROPERGATION_MANDATORY表示方法必须运行在一个事务中,如果当前事务不存在,就抛出异常
PROPAGATION_NESTED表示如果当前事务存在,则方法应该运行在一个嵌套事务中。否则,它看起来和 PROPAGATION_REQUIRED 看起来没什么俩样
PROPAGATION_NEVER表示方法不能运行在一个事务中,否则抛出异常
PROPAGATION_NOT_SUPPORTED表示方法不能运行在一个事务中,如果当前存在一个事务,则该方法将被挂起
PROPAGATION_REQUIRED表示当前方法必须运行在一个事务中,如果当前存在一个事务,那么该方法运行在这个事务中,否则,将创建一个新的事务
PROPAGATION_REQUIRES_NEW表示当前方法必须运行在自己的事务中,如果当前存在一个事务,那么这个事务将在该方法运行期间被挂起
PROPAGATION_SUPPORTS表示当前方法不需要运行在一个是事务中,但如果有一个事务已经存在,该方法也可以运行在这个事务中

欢迎欢迎~热烈欢迎~