`

spring事务属性

阅读更多
在TransactionDefinition接口中定义了五个不同的事务隔离级别

  • ISOLATION_DEFAULT 这是一个PlatfromTransactionManager默认的隔离级别,使用数据库默认的事务隔离级别.另外四个与JDBC的隔离级别相对应
  • ISOLATION_READ_UNCOMMITTED 这是事务最低的隔离级别,它充许别外一个事务可以看到这个事务未提交的数据。这种隔离级别会产生脏读,不可重复读和幻像读。
  • ISOLATION_READ_COMMITTED  保证一个事务修改的数据提交后才能被另外一个事务读取。另外一个事务不能读取该事务未提交的数据。这种事务隔离级别可以避免脏读出现,但是可能会出现不可重复读和幻像读。
  • ISOLATION_REPEATABLE_READ  这种事务隔离级别可以防止脏读,不可重复读。但是可能出现幻像读。它除了保证一个事务不能读取另一个事务未提交的数据外,还保证了避免下面的情况产生(不可重复读)。
  • ISOLATION_SERIALIZABLE 这是花费最高代价但是最可靠的事务隔离级别。事务被处理为顺序执行。除了防止脏读,不可重复读外,还避免了幻像读。
  • getPropagationBehavior()返回事务的传播行为,由是否有一个活动的事务来决定一个事务调用。
  • 在TransactionDefinition接口中定义了七个事务传播行为。
  • PROPAGATION_REQUIRED 如果存在一个事务,则支持当前事务。如果没有事务则开启一个新的事务。
  • PROPAGATION_SUPPORTS 如果存在一个事务,支持当前事务。如果没有事务,则非事务的执行。但是对于事务同步的事务管理器,PROPAGATION_SUPPORTS与不使用事务有少许不同。
  • PROPAGATION_REQUIRES_NEW 总是开启一个新的事务。如果一个事务已经存在,则将这个存在的事务挂起。
  • PROPAGATION_NOT_SUPPORTED  总是非事务地执行,并挂起任何存在的事务。
  • PROPAGATION_NEVER 总是非事务地执行,如果存在一个活动事务,则抛出异常 。
  • PROPAGATION_NESTED如果一个活动的事务存在,则运行在一个嵌套的事务中. 如果没有活动事务, 则按TransactionDefinition.PROPAGATION_REQUIRED 属性执行 。

引用
嵌套事务一个非常重要的概念就是内层事务依赖于外层事务。外层事务失败时,会回滚内层事务所做的动作。而内层事务操作失败并不会引起外层事务的回滚。

PROPAGATION_REQUIRES_NEW 和 PROPAGATION_NESTED 的最大区别在于, PROPAGATION_REQUIRES_NEW 完全是一个新的事务, 而 PROPAGATION_NESTED 则是外部事务的子事务, 如果外部事务 commit, 潜套事务也会被 commit, 这个规则同样适用于 roll back. 
分享到:
评论

相关推荐

    Spring事务属性

    Spring事务属性的详细分析和介绍,很全面,尤其对事务的每个部分都介绍的很精辟

    Spring中事务的传播属性详解

    Spring中事务的传播属性详解,Spring中事务的传播属性详解

    主题:详解spring事务属性.doc

    我们在使用Spring声明式事务时,有一个非常重要的概念就是事务属性。事务属性通常由事务的传播行为,事务的隔离级别,事务的超时值和事务只读标志组成。我们在进行事务划分时,需要进行事务定义,也就是配置事务的...

    Spring事务传播属性

    Spring事务传播属性,TransactionDefinition接口中定义的事务传播属性.TransactionDefinition接口中定义的事务传播属性.

    Spring事务测试题及原理

    此ppt中前半部分通过spring事务的60道题的测试,摸底对事务的掌握情况,后半部分,对spring中的事务属性(传播行为、隔离级别、回滚规则、事务超时、是否只读)进行说明

    Spring事务传播特性解析

    通过代码解析spring传播特性,包括 1、Propagation.REQUIRED 方法被调用时自动开启事务,在事务范围内使用... 如果没有活动事务, 则按TransactionDefinition.PROPAGATION_REQUIRED 属性执行。需要JDBC3.0以上支持。

    Spring事务优缺点及使用详解.docx

    事务简介 二、程序举例环境搭建 o1. 创建数据表 o2....o3....o4....o5....o6....o7....o8....o9. Spring配置文件 o10....三、使用 Spring 的事务注解管理事务 o1....o2....o3. 完整Spring配置文件 ... 业务层 public 方法加入事务属性 o5. 测试

    spring 事务传播

    系统理解spring事务传播属性,和隔离级别

    spring常用数据库事务传播属性和事务隔离级别1

    事务的属性:1.Propagation:用来设置事务的传播行为事务的传播行为:一个方法运行在了一个开启了事务的方法中时,当前方法是使用原来的事务还是开启了一个新

    Spring Boot多数据源(支持Spring声明式事务切换和回滚).pdf

    1. 基于Aspectj实现动态数据源...6. 实现事务内切换数据源(支持原生Spring声明式事务哟,仅此一家),并支持多数据源事务回滚(有了它除了跨服务的事务你需要考虑分布式事务,其他都不需要,极大的减少了系统的复杂程度)

    spring事务-项目案例-PPT解读.zip

    spring事务_案例_PPT 一、事务传播机制的demo案例,内容包括: 1.业务代码列举7种事务传播机制的情况,每个测试方法都附带日志分析记录、使用场景和实际场景,小白也能看得懂!!! 2.在测试类Test包下,使用juniter...

    Spring的编程式事务和声明式事务详解

    主要介绍了Spring的编程式事务和声明式事务的相关内容,涉及Spring事务属性、Spring事务的基本类等知识,需要的朋友可以了解下。

    spring事务管理1

    spring事务管理事务管理是企业级应用程序开发中必不可少的技术, 用来确保数据的完整性和一致性. 事务的四个关键属性(ACID)原子性(atomicity):

    深入理解Spring事务原理

    主要带领大家深入理解Spring事务原理,Spring事务的传播属性

    Spring事务详解

    详细讲解了Spring的事务属性和Spring的事务配置

    Spring事务传播属性和隔离级别详细介绍

    主要介绍了Spring事务传播属性和隔离级别详细介绍,同时涉及传播行为介绍,超时设置等相关内容,需要的朋友可以参考下。

    Spring事务之7种传播行1

    【Spring学习34】Spring事务(4):事务属性之7种传播行为 - 程序老兵的博客 - CSDN博客Python工程师首页博客学院下载论坛图文课问答商城

    Spring中的四种声明式事务的配置

    本文系统的介绍了Spring中的四种声明式事务的配置。可应用于实践项目中。

    02.Spring支持的常用数据库事务传播属性和事务隔离级别.zip

    02.Spring支持的常用数据库事务传播属性和事务隔离级别

    spring杂谈 作者zhang KaiTao

    1.1 Spring事务处理时自我调用的解决方案及一些实现方式的风险 1.2 我对AOP的理解 1.3 Spring开闭原则的表现-BeanPostProcessor的扩展点-1 1.4 我对IoC/DI的理解 1.5 SpringMVC + spring3.1.1 + hibernate4.1.0 集成...

Global site tag (gtag.js) - Google Analytics