首页 > 其他分享 >Spring事务 - 事务传播机制

Spring事务 - 事务传播机制

时间:2024-10-11 11:44:10浏览次数:12  
标签:事务 Spring NEVER 传播 当前 如果 方法

Spring事务 - 事务传播机制 

概要

事务的传播机制,顾名思义就是多个事务方法之间调用,事务如何在这些方法之间传播。

举个例子,方法 A 是一个事务的方法,方法 A 执行的时候调用了方法 B,此时方法 B 有无事务以及是否需要事务都会对方法 A 和方法 B 产生不同的影响,而这个影响是由两个方法的事务传播机制决定的。

1. REQUIRED 如果当前方法没有事务,新建一个事务,如果已经存在一个事务中,则加入到这个事务中。


2. SUPPORTS 支持当前事务,如果当前没有事务,就以非事务方式执行。如果存在事务,就加入到当前事务。


3. MANDATORY 使用当前的事务,如果当前没有事务,就抛出异常。

这就说明如果想调用 MANDATORY 传播属性的方法,一定要有事务,不然就会报错。


二、不支持当前事务

1. REQUIRES_NEW 创建一个新的事务。如果存在事务,就将事务挂起。

无论是否有事务,都会创建一个新的事务。


2. NOT_SUPPORTED 无论是否存在当前事务,都是以非事务的方式运行。

3. NEVER 不使用事务,如果存在事务,就抛出异常。

NEVER 的方法不使用事务,调用 NEVER 方法如果有事务,就抛出异常。


三、嵌套事务 NESTED

如果当前事务存在,就运行一个嵌套事务。如果不存在事务,就和 REQUIRED 一样新建一个事务。

标签:事务,Spring,NEVER,传播,当前,如果,方法
From: https://www.cnblogs.com/hld123/p/18458085

相关文章