spring事务隔离级别、传播机制以及简单配置_mysql查看事务隔离级别

spring事务隔离级别、传播机制以及简单配置_mysql查看事务隔离级别org.springframework.transactionpublicinterfaceTransactionDefinition定义符合Spring的事务属性的接口。基于类似于EJBCMT属性的传播行为定义。‎‎注意,除非启动实际的新事务,否则不会应用隔离级别和超时设置。‎‎仅‎PROPAGATION_REQUIRED,PROPAGATION_REQUIRES_NEWandPROPAGATION_NESTED‎可能导致这种情况,在其他情况下指定这些设置通常没有意义。此外

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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 事务属性。‎
‎请注意,作用域内的事务同步将始终由周围的事务驱动

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/179052.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 数据可视化编程实战_大数据可视化

    数据可视化编程实战_大数据可视化以R可视化为桥梁经常有对比R,Python和Julia之间的讨论,似乎R语言在这三者之中是最为逊色的,实则不可一概而论。R语言在常规数据分析的场景下,如数据读入,预处理,整理,以及单机可视化方面表现出的优势,无论从用户体验,还是代码流畅度,令另两种语言略逊一筹。本文将从统计学中最基本的密度曲线的绘制,来串讲一下题目中所涉及的R语言可视化中三个强大的可视化包的用法,以及之间的联系。以此为基础,进阶高段,可以自然过渡到Python,Julia等语言的可视化实践活动中。首先引入本次实践使用的数

    2025年7月2日
    3
  • javascript电子书下载

    javascript电子书下载百度云:https://pan.baidu.com/s/1hCZ0T5jeMlp8bDhW-KQzLQ密码:35wj包括不限于:香帅的北大金融学课王立铭生命科学50讲高爽天文学通识30讲薛兆丰的经济学课施展的世界史纲50讲听书需要加我扣扣978733153…

    2022年5月11日
    64
  • 我是互联网人,我没有做逃兵「建议收藏」

    我是互联网人,我没有做逃兵「建议收藏」作者|闫丽娇孔明明黎明唐亚华苏琦孟亚娜金玙璠本文经授权转载自燃财经(ID:rancaijing)一场突如其来的疫情,让本应该在春节休息的很多人,继续坚守在了工作岗位。特殊时…

    2022年5月7日
    51
  • 三分钟学习Java泛型中T、E、K、V、?的含义

    点击上方☝Java编程技术乐园,轻松关注!及时获取有趣有料的技术文章做一个积极的人编码、改bug、提升自己我有一个乐园,面向编程,春暖花开!泛型是Java中一个非常重要的内容,对于Jav…

    2022年2月28日
    68
  • vue:详解vue中的代理proxy

    vue:详解vue中的代理proxy问题我们本地调试一般都是 npmrunserve 然后打开本机 ip 8080 localhost 8080 对吧 这时候我们要调接口调试 后端的接口的地址可能在测试环境 也可能是自己电脑的 ip 总之不是你的 lcoalhost 8080 那么你调接口就会产生跨域 那么怎么办呢 就需要 proxy 出场了复习一下跨域的解决方案 jsonpcorsNod 中间件代理 两次跨域 nginx 反向代理 CORS 支持所有类型的 HTTP 请求 是跨域 HTTP 请求的根本解决方案 JSONP 只支持 GET 请求

    2025年7月29日
    4
  • Python lambda和reduce函数

    Python lambda和reduce函数

    2022年1月26日
    46

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号