@Transcational特性
- 捕获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特性相关推荐
- 事务以及@Transcational注解
文章目录 1.事务的概念 2.事务的四个特性 3.关于@Transcational注解的理解 4.使用场景 5.举例 6.编程式事务管理 7.相关知识 1.事务的概念 事务,是指作为单个逻辑工作单元执 ...
- Redis 高级特性(2)—— 发布 订阅模式
Redis 高级特性 -- 发布订阅 1. 发布-订阅介绍 "发布-订阅"模式包含两种角色,分别为发布者和订阅者.订阅者可以订阅一个或者若干个频道(channel),而发布者可以向 ...
- Redis 高级特性(1)—— 事务 过期时间 排序
1. Redis 高级特性 -- 事务 事务概念 Redis 中的事务 (transaction)是一组命令的集合.事务同命令一样是 Redis 的最小执行单位,一个事务中的命令要么都执行,要么都不执 ...
- LeetCode 10. Regular Expression Matching python特性、动态规划、递归
前言 本文主要提供三种不同的解法,分别是利用python的特性.动态规划.递归方法解决这个问题 使用python正则属性 import reclass Solution2:# @return a bo ...
- LLVM语法语义指令特性
LLVM语法语义指令特性 High Level Structure Module Structure LLVM 程序由Module's组成,每个 's 是输入程序的一个翻译单元.每个模块由函数,全局变 ...
- LLVM一些编程语法语义特性
LLVM一些编程语法语义特性 High Level Structure Module Structure LLVM 程序由Module's组成,每个 's 是输入程序的一个翻译单元.每个模块由函数.全 ...
- AIFramework框架Jittor特性(下)
AIFramework框架Jittor特性(下)
- AIFramework框架Jittor特性(上)
AIFramework框架Jittor特性(上)
- HarmonyOS技术特性
HarmonyOS技术特性 硬件互助,资源共享 多种设备之间能够实现硬件互助.资源共享,依赖的关键技术包括分布式软总线.分布式设备虚拟化.分布式数据管理.分布式任务调度等. 分布式软总线 分布式软总线 ...
最新文章
- ibm java_IBM i 上Java 虚拟机简介
- V星入侵(V 2009)第一季全集下载
- Csharp:user WebControl Read Adobe PDF Files In Your Web Browser
- 一个箱子的梦想_长葛这中学“建”了一个“梦想厅”……
- 用matlab给图像加水印,大神,在MATLAB中将图像水印插入音频文件可否给我个具体的步骤啊!很着急​...
- JQuery each详细用法
- Windows商店的Redis客户端G-dis3
- 校园二手交易平台小程序《云开发演示》
- HDU/4585/ Shaolin STL中map应用
- manjaro开启热点设置密码WPA/WPA2后iphone连不上
- 嵌入式系统开发-麦子学院(11)——ARM Cortex A8 硬件基础(1)
- 10年时间,打工妹把一个团队从“一盘散沙”到精英战队,成功实现空手“造”大房···
- 笔记--JavaScript面向对象
- E-mail营销介绍
- 余光中《写给未来的你》
- JAVA家政服务管理系统毕业设计 开题报告
- git/svn reset/revert 回滚到服务器上的某一个版本
- A Transformer-based Approach for Source code Summarization 翻译
- 给 Linux 系统“减肥”,系统垃圾清理
- 软件测试管理工具 madis,测试管理工具TestDirector介绍