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