事务传播行为是指方法之间的调用事务策略的问题,在理解数据库的事务时,我们一般时希望事务能够同时成功或同时失败。但是在写代码的时候并非如此。如果在进行批处理时,其中的一条处理失败了,我们只希望失败的这条记录发生回滚,而不是因为一条处理失败使得所有之前的处理都回滚,这样就不可取了。

在 Spring 中传播行为的类型有 7 种,分别是,Propagation.REQUIRED、Propagation.REQUIRES_NEW、Propagation.SUPPORTS、Propagation.NOT_SUPPORTED、Propagation.NEVER、Propagation.MANDATORY 和 Propagation.NESTED 。

解释如下:

  • Propagation.REQUIRED:如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务,这是 Spring 种默认的传播行为;
  • Propagation.REQUIRES_NEW:创建一个新的事务,如果当前存在事务,则把当前事务挂起;
  • Propagation.SUPPORTS:如果当前存在事务,则加入该事务;如果当前没有事务,那么就不启用事务;
  • Propagation.NOT_SUPPORTED:以非事务方式运行,如果当前存在事务,则把当前事务挂起,直至方法结束;
  • Propagation.NEVER:不支持事务,以非事务方式运行,如果当前存在事务,则抛出异常。
  • Propagation.MANDATORY:如果当前存在事务,则加入该事务;如果当前没有事务,则抛出异常。
  • Propagation.NESTED:如果当前存在事务,则创建一个事务作为当前事务的嵌套事务来运行;如果当前没有事务,则该取值等价于TransactionDefinition.PROPAGATION_REQUIRED。

Spring 中事务传播行为相关推荐

  1. spring中事务传播特性

    转载:若水三千-LOVE 所谓事务传播行为就是多个事务方法相互调用时,事务如何在这些方法间传播.Spring 支持 7 种事务传播行为(Transaction Propagation Behavior ...

  2. Spring事务专题(四)Spring中事务的使用、抽象机制及模拟Spring事务实现

    前言 本专题大纲如下: 事务专题大纲 「对于专题大纲我又做了调整哈,主要是希望专题的内容能够更丰富,更加详细」,本来是想在源码分析的文章中附带讲一讲事务使用中的问题,这两天想了想还是单独写一篇并作为事 ...

  3. spring中事务控制的一组API

    Spring事务控制我们要明确的 第一:JavaEE体系进行分层开发,事务处理位于业务层,Spring提供了分层设计业务层的事务处理解决方案. 第二:spring框架为我们提供了一组事务控制的接口.具 ...

  4. Spring中事务的使用、抽象机制及模拟Spring事务实现

    本文大纲如下: Spring事务应用大纲 编程式事务 Spring提供了两种编程式事务管理的方法 使用 TransactionTemplate 或者 TransactionalOperator. 直接 ...

  5. 事务例子_Spring事务专题(四)Spring中事务的使用、抽象机制及模拟Spring事务实现...

    Spring中事务的使用示例.属性及使用中可能出现的问题 前言 本专题大纲如下: 「对于专题大纲我又做了调整哈,主要是希望专题的内容能够更丰富,更加详细」,本来是想在源码分析的文章中附带讲一讲事务使用 ...

  6. 【Spring】Spring不同事务传播行为测试

    首先我说下写这篇文章的原因,虽然平时也频繁使用spring的事务,但是对事务在复杂情况下发生回滚的情况和spring不同的事务传播行为还是很模糊.   因为平时都只使用默认的传播行为,其他的很少用.但 ...

  7. spring中事务失效的几种情况

    下面简单介绍下,spring中常见的事务失效的几种情况.让我们在开发的过程避免这些情况,写出正确而且优雅的代码. 文章目录 数据库引擎不支持,mysql需要InnoDB 方法必须是public的 方法 ...

  8. spring中事务配置的3种方式-2

    http://doc.javanb.com/spring-framework-reference-zh-2-0-5/ch09s05.html http://zpchen.iteye.com/blog/ ...

  9. Spring的事务传播性

    Spring事务配置的五种方式和spring里面事务的传播属性和事务隔离级别 转载 2009年12月25日 12:25:00 标签: spring / bean / nested / class / ...

最新文章

  1. JavaScript工作原理(二):V8引擎和5招高效代码
  2. CodeFx: 微软一站式开发技术框架解决方案 2009-7-30 新增sample code简介
  3. STM32 进阶教程 15 - 串口DMA收发
  4. 三大院士、十大数据库掌门人,岳麓对话开启数字经济新时代!
  5. excl中将某列数据合到单个单元格
  6. python3 collections数据类型模块
  7. mysql 行转列_详解MySQL行列转换4个实现方案及反向行转列实验测试
  8. 【剑指 offer】(二十三)—— 从上往下打印二叉树(或曰层次遍历、广度优先遍历)
  9. 3.1 RNN 循环神经网络 概述(上篇)
  10. 软件著作权申请需要哪些材料?
  11. 支持I2S数字音频接口;音频功放芯片NTP8835C
  12. Niushop官网出新版 由内而外 玩转简约时尚风
  13. git:info: detecting host provider for ‘https://gitee.com/‘...
  14. C盘ProgramData变得巨大--VS2010在C盘下生成的.iTrace文件解决办法
  15. android仿最新版本微信相册--附源码
  16. 干货!旋转预测能够告诉我们分类器准确度的哪些信息?
  17. 秀米 ueditor 远程抓图到本地 问题结合
  18. android apk的md5值,android 获取apk md5值
  19. Lammps安装教程 windows版
  20. linux服务器系统安装

热门文章

  1. IT作秀大王:李开复
  2. ERR_SSL_VERSION_OR_CIPHER_MISMATCH on win10 chrome
  3. Windows Server2008之大量TIME_WAIT端口不能封锁和释放
  4. C语言结构体和结构体排序
  5. 切比雪夫距离公式证明
  6. Ubuntu开机黑屏原因及解决(recovery Mode)
  7. node.js 入门操作 持续学习中
  8. Windows登录虚拟机Ubuntu系统登录不成功解决办法(ssh: connect to host 192.168.220.128 port 22: Connection refused)
  9. 《我的心曾悲伤七次》
  10. Redis 集合(Set)方法使用详解