IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Spring事务隔离级别与传播行为 -> 正文阅读

[Java知识库]Spring事务隔离级别与传播行为

org.springframework.transaction

public interface TransactionDefinition
定义符合 Spring 的事务属性的接口。基于类似于 EJB CMT 属性的传播行为定义。?
?注意,除非启动实际的新事务,否则不会应用隔离级别和超时设置。? ?仅? PROPAGATION_REQUIRED, PROPAGATION_REQUIRES_NEW and PROPAGATION_NESTED ?可能导致这种情况,在其他情况下指定这些设置通常没有意义。此外,并非所有事务管理器都支持这些高级功能,因此在给定非默认值时可能会引发相应的异常。?

read-only flag ?适用于任何事务上下文,无论是由实际资源事务支持还是在资源级别以非事务方式运行。在后一种情况下,该标志将仅适用于应用程序中的托管资源,? ?例如? Hibernate Session.

隔离级别

隔离级别描述?
ISOLATION_DEFAULT使用基础数据存储的默认隔离级别。
ISOLATION_READ_COMMITTED指示防止脏读;可能发生非可重复读取和幻像读取。
ISOLATION_READ_UNCOMMITTED?指示可能发生脏读、非可重复读取和幻像读取。?
ISOLATION_REPEATABLE_READ?指示防止脏读和非可重复读;可能会发生幻像读取。?
ISOLATION_SERIALIZABLE?指示防止脏读、非可重复读取和幻像读取。?

ISOLATION_READ_COMMITTED

表示防止脏读;可能发生非可重复读取和幻像读取。?
?此级别仅禁止事务读取包含未提交更改的行。?

ISOLATION_READ_UNCOMMITTED

表示可能发生脏读、非可重复读取和幻像读取。?
?此级别允许一个事务更改的行在提交该行中的任何更改之前由另一个事务读取(“脏读取”)。如果回滚任何更改,则第二个事务将检索到无效行。

ISOLATION_REPEATABLE_READ

?表示防止脏读和非可重复读;可能会发生幻像读取。?
?此级别禁止事务读取包含未提交更改的行,并且还禁止以下情况:一个事务读取行,第二个事务更改行,第一个事务重新读取行,第二次获取不同的值(“不可重复读取”)。?

ISOLATION_SERIALIZABLE

?表示防止脏读、非可重复读取和幻像读取。?
?此级别包括??ISOLATION_REPEATABLE_READ??中的禁止,并进一步禁止以下情况:一个事务读取满足某个条件的所有行,第二个事务插入满足该条件的行,第一个事务针对同一条件重新读取,在第二次读取中检索其他“幻像”行

传播行为

传播行为描述?
PROPAGATION_REQUIRED支持当前事务;如果不存在,请创建一个新。?
PROPAGATION_REQUIRES_NEW?创建新事务,暂停当前事务(如果存在)。?
PROPAGATION_NESTED如果当前事务存在,则在嵌套事务中执行,否则行为??类似于PROPAGATION_REQUIRED??。?
PROPAGATION_NEVER不支持当前事务;如果当前事务存在,则引发异常。?
PROPAGATION_SUPPORTS?支持当前事务;如果不存在,则以非事务方式执行。?
PROPAGATION_NOT_SUPPORTED不支持当前事务;而是始终以非事务性方式执行。?
PROPAGATION_MANDATORY支持当前事务;如果当前事务不存在,则引发异常。?

PROPAGATION_REQUIRED

?支持当前事务;如果不存在,请创建一个新。类似于同名的 EJB 事务属性。?
?这通常是事务定义的默认设置,通常定义事务同步作用域。?

PROPAGATION_REQUIRES_NEW

?创建新事务,暂停当前事务(如果存在)。类似于同名的 EJB 事务属性。?
?注意:??实际的事务暂停不会在所有事务管理器上开箱即用。这尤其适用于??JtaTransactionManager??,它要求将其提供给它(在标准Java EE中是特定于服务器的)。?javax.transaction.TransactionManager

?作用域始终定义自己的事务同步。现有同步将被挂起并相应地恢复。

PROPAGATION_NESTED

?如果当前事务存在,则在嵌套事务中执行,否则行为??类似于PROPAGATION_REQUIRED??。EJB 中没有类似的功能。?
?注意:??实际创建嵌套事务仅适用于特定的事务管理器。开箱即用,这仅适用于在处理 JDBC 3.0 驱动程序时的 JDBC ??DataSourceTransactionManager??。某些 JTA 提供程序可能也支持嵌套事务。

PROPAGATION_NEVER

?不支持当前事务;如果当前事务存在,则引发异常。类似于同名的 EJB 事务属性。?
?请注意,事务同步在某个范围内??不可用??。

PROPAGATION_SUPPORTS

?支持当前事务;如果不存在,则以非事务方式执行。类似于同名的 EJB 事务属性。?
?注意:对于具有事务同步功能的事务管理器?, PROPAGATION_SUPPORTS ?与完全没有事务略有不同,因为它定义了同步可能适用的事务范围。因此,相同的资源? (a JDBC Connection, a Hibernate Session, etc) ?将在整个指定范围内共享。注意,确切的行为取决于事务管理器的实际同步配置!?

?一般而言,使用? PROPAGATION_SUPPORTS ?用心!特别是,不要依赖? PROPAGATION_REQUIRED or PROPAGATION_REQUIRES_NEW ?在? PROPAGATION_SUPPORTS?作用域(这可能会导致运行时的同步冲突)。如果这种嵌套是不可避免的,请确保适当地配置事务管理器(通常切换到“实际事务上的同步”)。?

PROPAGATION_NOT_SUPPORTED

?不支持当前事务;而是始终以非事务性方式执行。类似于同名的 EJB 事务属性。?
?注意:??实际的事务暂停不会在所有事务管理器上开箱即用。这尤其适用于??JtaTransactionManager??,它要求将其提供给它(在标准Java EE中是特定于服务器的)。?javax.transaction.TransactionManager

?请注意,事务同步在某个范围内??不可用??。现有同步将被挂起并相应地恢复。

PROPAGATION_MANDATORY

?支持当前事务;如果当前事务不存在,则引发异常。类似于同名的 EJB 事务属性。?
?请注意,作用域内的事务同步将始终由周围的事务驱动

?

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-05-21 18:48:02  更:2022-05-21 18:51:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/26 0:12:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码