Spring事务传播特性与事物隔离级别
红花易衰似郎意,水流无限似侬愁。——刘禹锡《竹枝词》
传播特性:
传播行为 | 意义 |
---|---|
PROPAGATION_MANDATORY | 表示该方法必须运行在一个事务中。如果当前没有事务正在发生,将抛出一个异常 |
PROPAGATION_NESTED | 表示如果当前正有一个事务在进行中,则该方法应当运行在一个嵌套式事务中。被嵌套的事务可以独立于封装事务进行提交或回滚。如果封装事务不存在,行为就像PROPAGATION_REQUIRES一样。 |
PROPAGATION_NEVER | 表示当前的方法不应该在一个事务中运行。如果一个事务正在进行,则会抛出一个异常。 |
PROPAGATION_NOT_SUPPORTED | 表示该方法不应该在一个事务中运行。如果一个现有事务正在进行中,它将在该方法的运行期间被挂起。 |
PROPAGATION_SUPPORTS | 表示当前方法不需要事务性上下文,但是如果有一个事务已经在运行的话,它也可以在这个事务里运行。 |
PROPAGATION_REQUIRES_NEW | 表示当前方法必须在它自己的事务里运行。一个新的事务将被启动,而且如果有一个现有事务在运行的话,则将在这个方法运行期间被挂起。 |
PROPAGATION_REQUIRES | 表示当前方法必须在一个事务中运行。如果一个现有事务正在进行中,该方法将在那个事务中运行,否则就要开始一个新事务。 |
隔离级别:
隔离级别 | 含义 |
---|---|
ISOLATION_DEFAULT | 使用后端数据库默认的隔离级别(管理员说了算)。 |
ISOLATION_READ_UNCOMMITTED | 允许读取尚未提交的更改。可能导致脏读、幻影读或不可重复读。 |
ISOLATION_READ_COMMITTED | 允许从已经提交的并发事务读取。可防止脏读,但幻影读和不可重复读仍可能会发生。 |
ISOLATION_REPEATABLE_READ | 对相同字段的多次读取的结果是一致的,除非数据被当前事务本身改变。可防止脏读和不可重复读,但幻影读仍可能发生。 |
ISOLATION_SERIALIZABLE | 完全服从ACID的隔离级别,确保不发生脏读、不可重复读和幻影读。这在所有隔离级别中也是最慢的,因为它通常是通过完全锁定当前事务所涉及的数据表来完成的。 |
产生现象:
现象 | 说明 |
---|---|
丢失更新 | 两个事务同时更新一行数据,最后一个事务的更新会覆盖掉第一个事务的更新,从而导致第一个事务更新的数据丢失,这是由于没有加锁造成的; |
脏读 | 一个事务读取到另外一个未提及事务的内容,即为脏读。 |
不可重复读 | 同一事务中,多次读取内容不一致(一般行数不变,而内容变了)。 |
幻读 | 同样的事务操作过程中,不同时间段多次(不同事务)读取同一数据,读取到的内容不一致(一般是行数变多或变少)。 |
Spring事务传播特性与事物隔离级别相关推荐
- 什么是事务、事务特性、事务隔离级别、spring事务传播特性
1.什么是事务: 事务是指程序中的一个操作序列.其特点是:该序列的所有操作要么全部成功完成,要么只要有一个操作失败,则该序列所有操作都将被撤销.这也是事务的原子性(要么成功,要么失败). 2.事务特性 ...
- Spring事务传播特性实例解析
背景介绍 目前系统正在进行代码重构前期预研工作,目标采用spring控制事务以减少开发代码量,提高开发效率.同时避免开发人员编码控制事务所带来的链接没有释放,事务没有提交,出现异常事务没有回滚的Bug ...
- SPRING事务传播特性
PROPAGATION_REQUIRED–支持当前事务,如果当前没有事务,就新建一个事务.这是最常见的选择. PROPAGATION_SUPPORTS–支持当前事务,如果当前没有事务,就以非事务方式执 ...
- 七种Spring事务传播特性
Spring中通过Propagation来设置事务的传播属性的,在这个属性中提供了我们其中关于事务传播的特性: 1. PROPAGATION_REQUIRED:支持当前事务,如果当前没有事务, ...
- Spring事务传播特性实例解析(以及如何使用注解形式事务)
原文地址:http://blog.csdn.net/yoara/article/details/16114853 原文地址的文章,写的demo会误导读者,所以在原文地址文章的基础上对原作者的demo进 ...
- spring事务@Transactional(readOnly = true)及隔离级别实验
先写结论: 第一:@Transactional(readOnly = true) 1.那么方法里面,必须是读的操作,当有写的操作的时候会报错提示. 2.读到的数据,从进入方法开始,以后即使其他客户端修 ...
- mysql数据库事务传播特性_什么是事务的传播特性?
我们都知道事务的概念,那么事务的传播特性是什么呢?(此处着重介绍传播特性的概念,关于传播特性的相关配置就不介绍了,可以查看spring的官方文档) 在我们用SSH开发项目的时候,我们一般都是将事务设置 ...
- Spring事务传播性与隔离级别
为什么80%的码农都做不了架构师?>>> 事务是逻辑处理原子性的保证手段,通过使用事务控制,可以极大的避免出现逻辑处理失败导致的脏数据等问题. 事务最重要的两个特性,是事务的传 ...
- Spring的AOP和IOC是什么?使用场景有哪些?Spring事务与数据库事务,传播行为,数据库隔离级别
Spring的AOP和IOC是什么?使用场景有哪些?Spring事务与数据库事务,传播行为,数据库隔离级别 AOP:面向切面编程. 即在一个功能模块中新增其他功能,比方说你要下楼取个快递,你同事对你说 ...
最新文章
- 【计算机视觉】EmguCV学习笔记(1)Hello World
- NodeJS基础2---2 Promise详解
- 【全文搜索引擎】Elasticsearch相关介绍与linux系统安装
- C# WinForm编程之System.Windows.Forms.DataGridViewRow.DataBoundItem Property
- IntelliJ IDEA连接数据库时报错:服务器返回无效的时区,需要设置 ‘‘serverTimezone‘‘ 属性。
- 搞懂这些SQL优化技巧,面试横着走
- jquery 检测div宽度变化_jquery判断浏览器宽度小于指定值改变div样式
- 改变图片局部透明度,实现透明度根据位置不而渐变
- 10.docker build
- java中构造器的调用顺序
- 最新最全latex在sublime上的配置步骤全解
- 干货|建模3D Max中常见问题
- 电子邮件注册网站是什么,163电子邮件注册流程详解
- Excel高级图表之四象限图制作
- 腾讯企业邮箱OpenApi
- 手把手转行|小步试错,逐步迭代
- 【计算机二级等级考试】公共基础知识-学习笔记
- 雅思作文模板.html,雅思写作小作文模版:柱状图
- 春晚架构&Ylmf OSChrom OS
- ABB阀门定位器里液压控制阀的作用