`
wangyan2009
  • 浏览: 24692 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

Spring嵌套事务

阅读更多
假设在我们项目中事务控制是放在service层,
一。现在项目中有一个ServiceA中有方法method1和method2,方法method2配置的事务级别为PROPAGATION_REQUIRES_NEW,方法method1不受事务控制
1。当在method1中调用method2时,method2此时也不受事务控制,如:在method2中进行数据插入操作,第一条数据插入成功,第二条数据插入发生异常,此时因为method2不受事务控制,在第一条数据插入成功后,第二条数据插入即使抛出异常,此时第一条数据也不会被回滚.
2.当在method2中调用method1时,则此时method1会受事务控制,如:在method1中进行数据插入操作,插入成功,但此时method2中抛出异常,结果method1成功插入的数据会回滚.

二。现项目中有ServiceA,ServiceB两个Service,在ServiceA中有method1方法,在SerivceB中有method2方法.其中method1不受事务控制,method2受事务控制
1.当在method1中调用ServiceB中的method2方法,在method2方法中执行往数据库中插入两次数据,第一次插入成功,第二次插入发生异常,此时第一次插入成功的数据会发生回滚,由此可见ServiceB中的method2还是受事务控制,而在method1中如果分两次往数据库中插入数据,第一次插入成功,第二次发生异常,此时第一次插入的数据不会回滚,同时也不会影响method2中的插入数据。

2。当在ServiceB中的method2中调用ServiceA中的method1时,method1中执行数据插入成功,而此时method2中操作发生异常,结果会导致method1中数据回滚,由此可知method1共用method2的事务。
分享到:
评论

相关推荐

    springboot多数据源即分布式事务解决方案,添加对多线程的支持

    实现系统对多数据源的操作。 实现系统对多数据源的分布式事务管理,包括事务的提交和回滚。

    springboot mybatis多数据源加事务嵌套

    springboot mybatis多数据源加事务嵌套 事务之间的调用 回滚 亲测可用 定义2个库分别建立 CREATE TABLE `user` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '用户编号', `user_name` varchar(25) ...

    Spring事务实践

    Spring事务实践 事务锁 嵌套事务设计原理

    Spring框架+Spring中的事务

    什么是Spring事务传播机制 Spring事务传播机制是指在多个事务操作发生时,如何管理这些操作之间的事务关系。...NESTED:如果当前存在事务,则在嵌套事务中执行;如果当前没有事务,则创建一个新事务

    Spring事务传播特性解析

    通过代码解析spring传播特性,包括 ... 如果一个活动的事务存在,则运行在一个嵌套的事务中. 如果没有活动事务, 则按TransactionDefinition.PROPAGATION_REQUIRED 属性执行。需要JDBC3.0以上支持。

    Spring 事务配置的五种方式.docx

    Spring事务类型详解: PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一...PROPAGATION_NESTED--如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则进行与PROPAGATION_REQUIRED类似的操作。

    高级开发spring面试题和答案.pdf

    某一个事务嵌套另一个事务的时候怎么办? REQUIRED_NEW和REQUIRED区别 Spring的事务是如何回滚的,实现原理; 抽象类和接口的区别,什么时候用抽象类什么时候用接口; StringBuilder和StringBuffer的区别 java值传递...

    Spring-Reference_zh_CN(Spring中文参考手册)

    9.5.1. 理解Spring的声明式事务管理实现 9.5.2. 第一个例子 9.5.3. 回滚 9.5.4. 为不同的bean配置不同的事务语义 9.5.5. <tx:advice/> 有关的设置 9.5.6. 使用 @Transactional 9.5.6.1. @Transactional 有关的设置 ...

    spring.net中文手册在线版

    14.5.1.理解Spring.NET声明式事务管理的实现 14.5.2.第一个例子 14.5.3.Transaction特性的设置 14.5.4.通过AutoProxyCreator使用声明式事务 14.5.5.通过TransactionProxyFactoryObject使用声明式事务 14.5.6. 通过...

    Spring 2.0 开发参考手册

    9.5.1. 理解Spring的声明式事务管理实现 9.5.2. 第一个例子 9.5.3. 回滚 9.5.4. 为不同的bean配置不同的事务语义 9.5.5. <tx:advice/> 有关的设置 9.5.6. 使用 @Transactional 9.5.7. 插入事务操作 9.5.8. ...

    Spring.3.x企业应用开发实战(完整版).part2

    10.5.2 Hibernate+Spring JDBC混合框架的事务管理 10.6 特殊方法成漏网之鱼 10.6.1 哪些方法不能实施Spring AOP事务 10.6.2 事务增强遗漏实例 10.7 数据连接泄漏 10.7.1 底层连接资源的访问问题 10.7.2 Spring JDBC...

    Spring中文帮助文档

    9.5.1. 理解Spring的声明式事务管理实现 9.5.2. 第一个例子 9.5.3. 回滚 9.5.4. 为不同的bean配置不同的事务语义 9.5.5. <tx:advice/> 有关的设置 9.5.6. 使用 @Transactional 9.5.7. 事务传播 9.5.8. 通知...

    spring chm文档

    9.5.1. 理解Spring的声明式事务管理实现 9.5.2. 第一个例子 9.5.3. 回滚 9.5.4. 为不同的bean配置不同的事务语义 9.5.5. <tx:advice/> 有关的设置 9.5.6. 使用 @Transactional 9.5.7. 插入事务操作 9.5.8. ...

    Spring API

    9.5.1. 理解Spring的声明式事务管理实现 9.5.2. 第一个例子 9.5.3. 回滚 9.5.4. 为不同的bean配置不同的事务语义 9.5.5. <tx:advice/> 有关的设置 9.5.6. 使用 @Transactional 9.5.7. 事务传播 9.5.8. 通知...

    Spring3.x企业应用开发实战(完整版) part1

    10.5.2 Hibernate+Spring JDBC混合框架的事务管理 10.6 特殊方法成漏网之鱼 10.6.1 哪些方法不能实施Spring AOP事务 10.6.2 事务增强遗漏实例 10.7 数据连接泄漏 10.7.1 底层连接资源的访问问题 10.7.2 Spring JDBC...

    spring事物管理

    Spring在TransactionDefinition接口中规定了7种类型的事务传播行为,它们规定了事务方法和事务方法发生嵌套调用时事务如何进行传播 PROPAGATION_REQUIRED PROPAGATION_SUPPORTS PROPAGATION_MANDATORY PROPAGATION_...

    dynamic-datasource-spring-boot-starter-v3.5.1.zip

    Dynamic-Datasource (opens new window)- 基于 SpringBoot 的多数据源组件,功能强悍,支持 Seata 分布式事务。 支持 数据源分组 ,适用于多种场景 纯粹多库 读写分离 一主多从 混合模式。 支持数据库敏感配置信息 ...

    2阶段提交分布式事务中间件,一致性分布式事务框架

    一致性分布式事务框架。...支持嵌套事务。本地事务存储支持:redis mongodb zookeeper 文件 mysql。事务日志序列化支持:java hessian kryo protostuff。SPI扩展:用户可以自定义序列化和事务日志的存储

    dynamic-datasource-spring-boot-starter-v3.5.1.tar.gz

    Dynamic-Datasource (opens new window)- 基于 SpringBoot 的多数据源组件,功能强悍,支持 Seata 分布式事务。 支持 数据源分组 ,适用于多种场景 纯粹多库 读写分离 一主多从 混合模式。 支持数据库敏感配置信息 ...

    dynamic-datasource-spring-boot-starter:springboot的动态数据源多数据源动态数据源主从分离读写分离分布式事务https:dynamic-datasource.com

    一个基于springboot的快速集成多数据源的启动器简介dynamic-datasource-spring-boot-starter是一个基于springboot的快速集成多数据源的启动器。其支持Jdk 1.7 +,SpringBoot 1.4.x 1.5.x 2.xx。文件| 文献资料|特性...

Global site tag (gtag.js) - Google Analytics