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

在 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. warning: function declaration isn’t a prototype解决方法
  2. leetcode 121
  3. java读取excel数据的方法是_java怎么读取excel文件里的数据
  4. 如何让html引用公共的头部和尾部(多个html文件公用一个header.html和footer.html)
  5. 前端基础学习之CSS选择器
  6. Hdu 5806 NanoApe Loves Sequence Ⅱ(双指针) (C++,Java)
  7. 使用Python将DOTA数据集的格式转换成VOC2007数据集的格式
  8. 【读书笔记】之【瞬变】
  9. TeXmacs Bibtex文献排序
  10. ios 查看crash日志
  11. C++大小写转换tolower/toupper以及transform函数
  12. Professor forcing算法
  13. 创业要素:如何推广自己的产品
  14. Protobuf解包组包
  15. ABAP 金额内外部转换函数
  16. mysql 安装与连接数据库_Mysql 安装、登录以及链接数据库
  17. python人像绘制_CVPR 2019 | APDrawingGAN:人脸秒变艺术肖像画
  18. excel的vlookup如果是空白就不显示0,而是显示空白
  19. python正负数排序_带有负值的Python sort()问题
  20. Win32 组合框控件的使用

热门文章

  1. 金庸的博士后入学考试题目
  2. php数组的联合,PHP 数组合并
  3. JavaScript的三种弹出提示框(alert、confirm、prompt)
  4. 工厂模式 multiple definition 多重定义 即重复定义 找不到/dev/vide0设备
  5. iptables开放22、80端口
  6. Bootstrap4的简单运用
  7. 相机中常见的噪声类型
  8. Ubuntu系统启动黑屏
  9. 使用Vmware启动Ubuntu时黑屏的解决方法
  10. NOIP复习模拟赛day1