事务传播特性了解事务的几种传播特性
|
数据库操作1
|
数据库操作2
|
PROPAGATION_REQUIRED
|
Transaction1
|
Transaction1
|
null
|
Transaction2
|
PROPAGATION_SUPPORTS
|
Transaction1
|
Transaction1
|
null
|
null
|
PROPAGATION_MANDATORY
|
Transaction1
|
Transaction1
|
null
|
Throws
Exception
|
PROPAGATION_REQUIRES_NEW
|
Transaction1
|
Transaction2
|
null
|
Transaction2
|
PROPAGATION_NOT_SUPPORTED
|
Transaction1
|
null
|
null
|
null
|
PROPAGATION_NEVER
|
Transaction1
|
Throws
Exception
|
null
|
null
|
PROPAGATION_NESTED(Spring)
|
Transaction1
|
Transaction2
[Transaction1]
|
null
|
Transaction2
|
1.
PROPAGATION_REQUIRED: 如果存在一个事务,则支持当前事务。如果没有事务则开启
2. PROPAGATION_SUPPORTS:
如果存在一个事务,支持当前事务。如果没有事务,则非事务的执行
3. PROPAGATION_MANDATORY:
如果已经存在一个事务,支持当前事务。如果没有一个活动的事务,则抛出异常。
4. PROPAGATION_REQUIRES_NEW:
总是开启一个新的事务。如果一个事务已经存在,则将这个存在的事务挂起。
5. PROPAGATION_NOT_SUPPORTED:
总是非事务地执行,并挂起任何存在的事务。
6. PROPAGATION_NEVER:
总是非事务地执行,如果存在一个活动事务,则抛出异常
7.
PROPAGATION_NESTED:如果一个活动的事务存在,则运行在一个嵌套的事务中. 如果没有活动事务,
则按TransactionDefinition.PROPAGATION_REQUIRED
属性执行
事务隔离级别
|
脏读
|
不可重复读
|
幻象读
|
ISOLATION_READ_UNCOMMITTED
|
√
|
√
|
√
|
ISOLATION_READ_COMMITTED
|
|
√
|
√
|
ISOLATION_REPEATABLE_READ
|
|
|
√
|
ISOLATION_SERIALIZABLE
|
|
|
|
ISOLATION_DEFAULT
|
PlatfromTransactionManager
默认的隔离级别
SQLServer :READ_COMMITTED
MySql:REPEATABLE_READ
|
Spring事务的隔离级别
1.
ISOLATION_DEFAULT:
这是一个PlatfromTransactionManager默认的隔离级别,使用数据库默认的事务隔离级别.
另外四个与JDBC的隔离级别相对应
2.
ISOLATION_READ_UNCOMMITTED:
这是事务最低的隔离级别,它充许令外一个事务可以看到这个事务未提交的数据。
这种隔离级别会产生脏读,不可重复读和幻像读。
3.
ISOLATION_READ_COMMITTED:
保证一个事务修改的数据提交后才能被另外一个事务读取。另外一个事务不能读取该事务未提交的数据
4.
ISOLATION_REPEATABLE_READ:
这种事务隔离级别可以防止脏读,不可重复读。但是可能出现幻像读。
5. ISOLATION_SERIALIZABLE
这是花费最高代价但是最可靠的事务隔离级别。事务被处理为顺序执行。
除了防止脏读,不可重复读外,还避免了幻像读。
脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。
不可重复读是
指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。
那么,在第一个事务中的两次读数据之间,由于第二个事务的修
改,那么第一个事务两次读到的的数据可能是不一样的。
幻觉读是
指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行
。同时,第二个事务也修改这个表中的
数据,这种修改是向表中插入一行新数据。
那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,就好象发生了幻觉一样。
分享到:
相关推荐
事务传播特性&事务隔离级别 详细的事务传播特性&事务隔离级别
有关JDBC事务 JTA事务 传播特性 隔离级别等等
spring事务的传播特性和事务隔离级别
Spring事务的传播特性和隔离级别 事务的几种传播特性详细介绍
Spring控制Hibernate中的事务传播特性与隔离级别操作,通过利用spring和Hibernate的两个HibernateTemplate 和 jdbcTemplate类,实现数据的交互。
spring 事务传播与隔离级别DEMO 脏读、重复读、幻影读 spring 事务传播与隔离级别DEMO 脏读、重复读、幻影读
事务的属性:1.Propagation:用来设置事务的传播行为事务的传播行为:一个方法运行在了一个开启了事务的方法中时,当前方法是使用原来的事务还是开启了一个新
Java面试题54.Spring事务的传播特性和隔离级别.mp4
Spring 管理事务(传播特性、隔离级别、readonly).rar
02.Spring支持的常用数据库事务传播属性和事务隔离级别
事务的传播行为和隔离级别.docx
java面试宝典
系统理解spring事务传播属性,和隔离级别
上面我们只是简单的使用事务,这里将讨论Spring事务机制中最重要的两个配置项,即隔离级别与传播行为。毫无疑问本节内容是本章的核心内容,也是互联网企业最关注的内容之一,因此他十分重要,值得花费大的篇幅去讨论...
主要介绍了Spring事务传播属性和隔离级别详细介绍,同时涉及传播行为介绍,超时设置等相关内容,需要的朋友可以参考下。
Spring 事务隔离与事务传播的详解与对比 Spring是SSH中的管理员,负责管理其它框架,协调各个部分的工作。今天一起学习一下Spring的事务管理。Spring的事务管理分为声明式跟编程式。声明式就是在Spring的配置文件中...
1.说到数据库事务,⼈们脑海⾥⾃然不⾃然的就会浮现出事务的四⼤特性、四⼤隔离级别、七⼤传播特性。 四⼤还好说,问题是七⼤传播特性是哪⼉来的?是Spring在当前线程内,处理多个数据库操作⽅法事务时所做的⼀种...
上文理解到对spring事物,事物的隔离机制,这片具体说下事物的传播机制和隔离机制
【Spring五个事务隔离级别和七个事务传播行为】 数据库事务和Spring事务是一般面试都会被提到,很多朋友写惯了代码,很少花时间去整理归纳这些东西,结果本来会的东西,居然吞吞吐吐答不上来。 下面是我收集到一些...