声明式事务-- 事务的传播机制-- 事务传播机制种类

简介: 声明式事务-- 事务的传播机制-- 事务传播机制种类

声明式事务-- 事务的传播机制-- 事务传播机制种类


事务的传播机制


事务传播机制种类


事务的传播机制7种,如图:


image.png


当有多个事务处理并存时,如何控制?


首先我们要根据事务的传播属性进行判断,视情况而定。

这里主要说明两种情况应该怎么辨别。


REQUIRES【默认传播属性】


外面的事务包含事务时,里面的事务执行时,只要有一个失败就全部回滚。

image.png


REQUIRES_NEW


里面的事务执行哪一个失败就那一个进行回滚,两个事务之间相互不影响。


image.png



事务的传播机制的设置方法


image.png


REQUIRES_NEW 和REQUIRED 在处理事务的策略


应用实例:

@Transactional//表示本身是一个事务
public void multiTxTest() {
    //2号用户购买2号商品,购买一个
    goodService.buyGoods(2,2,1);//也是一个事务
     //1号用户购买1号商品,购买一个
    goodService.buyGoods(1,1,1);//也是一个事务
}


解析


  1. 1.如果设置为REQUIRES_NEW
    buyGoods2 如果错误,不会影响到buyGoods()反之亦然,即它们的事务是独立的.
  2. 2.如果设置为REQUIRED
    buyGoods2 和buyGoods 是一个整体,只要有方法的事务错误,那么两个方法都不会执行成功.
相关文章
|
6月前
|
Java 数据库 Spring
Spring事务的传播机制(行为、特性)
Spring事务的传播机制(行为、特性)
123 0
|
存储 Java 数据库
Spring事务和事务传播机制
Spring事务和事务传播机制
94 0
|
2月前
|
Java 测试技术 数据库
Spring事务传播机制(最全示例)
在使用Spring框架进行开发时,`service`层的方法通常带有事务。本文详细探讨了Spring事务在多个方法间的传播机制,主要包括7种传播类型:`REQUIRED`、`SUPPORTS`、`MANDATORY`、`REQUIRES_NEW`、`NOT_SUPPORTED`、`NEVER` 和 `NESTED`。通过示例代码和数据库插入测试,逐一展示了每种类型的运作方式。例如,`REQUIRED`表示如果当前存在事务则加入该事务,否则创建新事务;`SUPPORTS`表示如果当前存在事务则加入,否则以非事务方式执行;`MANDATORY`表示必须在现有事务中运行,否则抛出异常;
121 4
Spring事务传播机制(最全示例)
|
6月前
|
Java Spring
spring事务传播机制
spring事务传播机制
23 0
|
6月前
|
Java 关系型数据库 MySQL
Spring事务和事务传播机制(1)
Spring事务和事务传播机制(1)
77 0
Spring事务和事务传播机制(1)
|
6月前
|
SQL Java 关系型数据库
Spring事务和事务传播机制(2)
Spring事务和事务传播机制(2)
57 0
Spring事务和事务传播机制(2)
|
Java Spring
这些Spring事务传播性类型,你有必要了解下
在Spring框架中,事务传播性是一个重要概念,决定了事务在方法间的传播和交互方式。了解不同的事务传播特性可以帮助我们设计可靠、灵活的系统。
这些Spring事务传播性类型,你有必要了解下
|
Java 关系型数据库 MySQL
Spring—事务及事务的传播机制(下)
Spring—事务及事务的传播机制(下)
276 0
|
SQL Java 关系型数据库
Spring—事务及事务的传播机制(上)
Spring—事务及事务的传播机制(上)
288 0
|
存储 Java 关系型数据库
Spring事务传播机制
通过举例Spring 父方法、子方法调用以及事务传播机制验证
Spring事务传播机制