• 捕获RuntimeException
  • 捕获Error
  • 并不捕获Checked Exception

在方法中使用@Transcational注解时候,通过throw new Exception(),在发生异常的时候不会进行回滚,可以使用throw new RuntimeException();

也可以使用@Transactional(rollbackForClassName="Exception")来设置回滚触发的异常类型。

事物传播行为介绍: 

  @Transactional(propagation=Propagation.REQUIRED) :如果有事务, 那么加入事务, 没有的话新建一个(默认情况下)
  @Transactional(propagation=Propagation.NOT_SUPPORTED) :容器不为这个方法开启事务
  @Transactional(propagation=Propagation.REQUIRES_NEW) :不管是否存在事务,都创建一个新的事务,原来的挂起,新的执行完毕,继续执行老的事务
  @Transactional(propagation=Propagation.MANDATORY) :必须在一个已有的事务中执行,否则抛出异常
  @Transactional(propagation=Propagation.NEVER) :必须在一个没有的事务中执行,否则抛出异常(与Propagation.MANDATORY相反)
  @Transactional(propagation=Propagation.SUPPORTS) :如果其他bean调用这个方法,在其他bean中声明事务,那就用事务.如果其他bean没有声明事务,那就不用事务.

事物超时设置:

  @Transactional(timeout=30) //默认是30秒

事务隔离级别:

  @Transactional(isolation = Isolation.READ_UNCOMMITTED):读取未提交数据(会出现脏读, 不可重复读) 基本不使用
  @Transactional(isolation = Isolation.READ_COMMITTED):读取已提交数据(会出现不可重复读和幻读)
  @Transactional(isolation = Isolation.REPEATABLE_READ):可重复读(会出现幻读)
  @Transactional(isolation = Isolation.SERIALIZABLE):串行化

  MYSQL: 默认为REPEATABLE_READ级别
  SQLSERVER: 默认为READ_COMMITTED

脏读 : 一个事务读取到另一事务未提交的更新数据
不可重复读 : 在同一事务中, 多次读取同一数据返回的结果有所不同, 换句话说, 
后续读取可以读到另一事务已提交的更新数据. 相反, "可重复读"在同一事务中多次
读取数据时, 能够保证所读数据一样, 也就是后续读取不能读到另一事务已提交的更新数据
幻读 : 一个事务读到另一个事务已提交的insert数据

转载于:https://www.cnblogs.com/huangzhang/p/10732012.html

@Transcational特性相关推荐

  1. 事务以及@Transcational注解

    文章目录 1.事务的概念 2.事务的四个特性 3.关于@Transcational注解的理解 4.使用场景 5.举例 6.编程式事务管理 7.相关知识 1.事务的概念 事务,是指作为单个逻辑工作单元执 ...

  2. Redis 高级特性(2)—— 发布 订阅模式

    Redis 高级特性 -- 发布订阅 1. 发布-订阅介绍 "发布-订阅"模式包含两种角色,分别为发布者和订阅者.订阅者可以订阅一个或者若干个频道(channel),而发布者可以向 ...

  3. Redis 高级特性(1)—— 事务 过期时间 排序

    1. Redis 高级特性 -- 事务 事务概念 Redis 中的事务 (transaction)是一组命令的集合.事务同命令一样是 Redis 的最小执行单位,一个事务中的命令要么都执行,要么都不执 ...

  4. LeetCode 10. Regular Expression Matching python特性、动态规划、递归

    前言 本文主要提供三种不同的解法,分别是利用python的特性.动态规划.递归方法解决这个问题 使用python正则属性 import reclass Solution2:# @return a bo ...

  5. LLVM语法语义指令特性

    LLVM语法语义指令特性 High Level Structure Module Structure LLVM 程序由Module's组成,每个 's 是输入程序的一个翻译单元.每个模块由函数,全局变 ...

  6. LLVM一些编程语法语义特性

    LLVM一些编程语法语义特性 High Level Structure Module Structure LLVM 程序由Module's组成,每个 's 是输入程序的一个翻译单元.每个模块由函数.全 ...

  7. AIFramework框架Jittor特性(下)

    AIFramework框架Jittor特性(下)

  8. AIFramework框架Jittor特性(上)

    AIFramework框架Jittor特性(上)

  9. HarmonyOS技术特性

    HarmonyOS技术特性 硬件互助,资源共享 多种设备之间能够实现硬件互助.资源共享,依赖的关键技术包括分布式软总线.分布式设备虚拟化.分布式数据管理.分布式任务调度等. 分布式软总线 分布式软总线 ...

最新文章

  1. ibm java_IBM i 上Java 虚拟机简介
  2. V星入侵(V 2009)第一季全集下载
  3. Csharp:user WebControl Read Adobe PDF Files In Your Web Browser
  4. 一个箱子的梦想_长葛这中学“建”了一个“梦想厅”……
  5. 用matlab给图像加水印,大神,在MATLAB中将图像水印插入音频文件可否给我个具体的步骤啊!很着急​...
  6. JQuery each详细用法
  7. Windows商店的Redis客户端G-dis3
  8. 校园二手交易平台小程序《云开发演示》
  9. HDU/4585/ Shaolin STL中map应用
  10. manjaro开启热点设置密码WPA/WPA2后iphone连不上
  11. 嵌入式系统开发-麦子学院(11)——ARM Cortex A8 硬件基础(1)
  12. 10年时间,打工妹把一个团队从“一盘散沙”到精英战队,成功实现空手“造”大房···
  13. 笔记--JavaScript面向对象
  14. E-mail营销介绍
  15. 余光中《写给未来的你》
  16. JAVA家政服务管理系统毕业设计 开题报告
  17. git/svn reset/revert 回滚到服务器上的某一个版本
  18. A Transformer-based Approach for Source code Summarization 翻译
  19. 给 Linux 系统“减肥”,系统垃圾清理
  20. 软件测试管理工具 madis,测试管理工具TestDirector介绍

热门文章

  1. linux文件属性之用户和组基础知识
  2. JS容易犯错的this和作用域
  3. JAVA记录-Servlet介绍
  4. Hdu 4514 湫湫系列故事——设计风景线
  5. 【ARDUINO】HC-05蓝牙不配对问题
  6. MATLAB读写Excel数据
  7. v-for中用elementUI实现分页
  8. 产品经理经验谈100篇(三)-如何才能打造出一款好的SaaS产品?
  9. python程序设计课程设计_《Python程序设计》教学大纲.doc
  10. 苹果13系统锁屏延迟_iPhone 11 锁屏出现延迟是怎么回事?