hibernate Isolation Level(事务隔离等级)

hibernate Isolation Level(事务隔离等级)

 

1、Serializable:最严格的级别,事务串行执行,资源消耗最大;
2、REPEATABLE READ:保证了一个事务不会修改已经由另一个事务读取但未提交(回滚)的数据。避免了“脏读取”和“不可重复读取”的情况,但是带来了更多的性能损失。
3、READ COMMITTED:大多数主流数据库的默认事务等级,保证了一个事务不会读到另一个并行事务已修改但未提交的数据,避免了“脏读取”。该级别适用于大多数系统。
4、Read Uncommitted:保证了读取过程中不会读取到非法数据。隔离级别在于处理多事务的并发问题。
我们知道并行可以提高数据库的吞吐量和效率,但是并不是所有的并发事务都可以并发运行。
我们首先说并发中可能发生的3中不讨人喜欢的事情
1: Dirty reads--读脏数据。也就是说,比如事务A的未提交(还依然缓存)的数据被事务B读走,如果事务A失败回滚,会导致事务B所读取的的数据是错误的。
2: non-repeatable reads--数据不可重复读。比如事务A中两处读取数据-total-的值。在第一读的时候,total是100,然后事务B就把total的数据改成 200,事务A再读一次,结果就发现,total竟然就变成200了,造成事务A数据混乱。
3: phantom reads--幻象读数据,这个和non-repeatable reads相似,也是同一个事务中多次读不一致的问题。但是non-repeatable reads的不一致是因为他所要取的数据集被改变了(比如total的数据),但是phantom reads所要读的数据的不一致却不是他所要读的数据集改变,而是他的条件数据集改变。比如Select account.id where account.name="ppgogo*",第一次读去了6个符合条件的id,第二次读取的时候,由于事务b把一个帐号的名字由"dd"改 成"ppgogo1",结果取出来了7个数据。

 Dirty readsnon-repeatable readsphantom reads
Serializable不会不会不会
REPEATABLE READ不会不会会
READ COMMITTED不会会会
Read Uncommitted会会会


readOnly
事务属性中的readOnly标志表示对应的事务应该被最优化为只读事务。

 

另附转载文章地址【感谢!】

:http://blog.youkuaiyun.com/seng3018/article/details/6690559

10分钟解决Hibernate的事务管理,Hibernate当中要设置事务的隔离级别 一、事务 1、什么是事务: 事务:事物指的是逻辑上的一组操作,组成这一组操作的逻辑单元要么全成功,要么全失败 2、事务的特性: (1)原子性:代表事务不可分割。 (2)一致性:代表事务执行的前后,数据的完整性要保证一直。 (3)隔离性:代表的是一个事务执行的过程当中,不应该受到其他事务的干扰。 (4)持久性:代表一个事务执行完成后数据就持久到数据库当中(提交或回滚)。 3、如果我们不考虑事务的隔离性,就会引发一些安全性的问题 (一)读的问题 (1)脏读:一个事务读到另外一个事务未提交的数据 (2)不可重复读:一个事务读到了另一个事务已经提交的update的数据,导致在前一个事务多次查询结果不一 立即下载

相关推荐

AI使用指南:6个超实用的Prompt提示词模板

最近越来越多人开始接触AI,但其实想要让AI更懂你,关键是掌握对的提示词模板!今天就给大家分享6种超实用的Prompt提示词模板,不管你是小白还是老手都能用

程序员世杰 8179

java hibernate事务处理_JavaWeb_(Hibernate框架)Hibernate中事务

Hibernate中事务事务的性质事物的隔离级别配置事务的隔离级别事务的性质原子性:原子,不可再分,一个操作不能分为更小的操作,要么全都执行,要么全不执行。一致性:事务在完成时,必须使得所有的数据保持一致的状态。(与开始事务保持前一样的状态)隔离性:事务查看数据时数据所处的状态,要么是另一个并发事务修改它之前的状态,要么是另一并发事务修改它之后的状态,事务不会查看中间状态的数据。持久性:事务完成之...

weixin_29081101的博客 235

CAN收发器TJA1145A休眠唤醒应用

TJA1145的唤醒工作原理主要依赖于其内部的唤醒机制和外部硬件的配合,主要涉及低功耗状态、选择性唤醒功能。TJA1145是一款CAN收发器,它支持多种工作模式,包括NormalStandbySleep等。在这些模式中,Sleep模式是最低功耗状态,而Normal模式则是最活跃的状态,其中Standby模式处于两者之间,允许一定的功能操作但功耗较低。TJA1145可以通过接收特定的唤醒源从Sleep或Standby模式唤醒到Standby或Normal模式。唤醒源的检测与处理。

radix关于mcu的博客,持续更新中... 5955

Hibernate中如何设置数据库事务隔离级别详解

本文详细介绍了如何在Hibernate框架中设置和管理数据库事务隔离级别,以确保并发环境下的数据一致性。Hibernate通过与JDBC连接或Spring事务管理器结合,提供了间接设置事务隔离级别的方法。文章首先概述了SQL标准定义的四种事务隔离级别(读未提交、读已提交、可重复读、串行化),然后讲解了在Hibernate中进行事务管理的基础操作,并进一步阐述了使用JDBC API或Spring事务管理器设置事务隔离级别的具体实现方式。最后强调了合理配置事务隔离级别对保障数据一致性和系统并发性能的重要性。

iwork168的博客 321

python爬取淘宝数据

python爬取淘宝数据淘宝评论 淘宝评论 打开淘宝,选择打开需要爬取的商品的评论。在谷歌浏览器选择开发者工具,选择network,找到list_detail_rate.htm?itemId=624466733121,点击headers、previews,可以看见相应的评论数据。 爬取一页屏评论代码如下 import re import requests headers = { 'Referer': '在headers中', 'User-Agent': '在

qq_36333776的博客 5799

weblogic 集群搭建,双机部署,相关问题记录

4.5.集群搭建1 参考网址https://wenku.baidu.com/view/76365129cd1755270722192e453610661ed95aa4.html IP地址 端口 角色 192.168.1.160 9001 AdminServer ...

zl386119974的专栏 1670

Hibernate深入理解----03操作Session缓存方法(flush、refresh、clear,事务隔离级别)

参考代码下载github:https://github.com/changwensir/java-ee/tree/master/hibernate4     Session 接口是 Hibernate 向应用程序提供的操纵数据库的最主要的接口, 它提供了基本的保存, 更新, 删除和加载 Java 对象的方法.     Session 具有一个缓存, 位于缓存中的对象称为持久化对象, 它和数

ChangWen的博客 6775

NX二次开发 计算多个体的最小包围盒

多个体的最小包围盒

weixin_72680115的博客 430

Hibernate Session 事务隔离级别回顾 持久化对象的状态 Session核心方法

1 Session概述 Session接口是Hibernate向应用程序提供的操纵数据库的最主要的接口,它提供了基本的保存、更新、删除和加载Java对象的方法。 每一个Session对象都在内存中维护了一个缓存,位于缓存中的对象称为持久化对象,它和数据库表中的相关记录保持着一种对应关系。通过Session缓存,Hibernate最大限度的减少了应用程序访问数据库的次数,实现了对内存空间更加有效的

无道圣教主 576

C#中通过Mapster实现轻量级高效对象映射器:从零到精通

本文介绍了.NET生态中高性能对象映射库Mapster的完整使用指南。从基础安装(通过NuGet包)到快速入门示例,展示了如何实现简单对象映射。进一步讲解了自定义映射规则、命名不一致属性的处理方式,以及如何在ASP.NET Core中集成Mapster服务。针对复杂场景,详细解析了嵌套对象映射的配置技巧,并提供了性能优化方案(如预编译映射器)和调试技巧(启用调试模式、捕获映射异常)。通过完整的代码实践,帮助开发者高效解决从基础到高级的对象映射需求。

墨夶的博客 742

Xilinx系ZYNQ学习笔记(一)Vivado使用说明

vivado使用学习

贾saisai的博客 1876

事务的特征以及Hibernate事务

事务的特征以及Hibernate事务 事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。 原子性(atomicity):一个事务是一个不可分割的工作单位,事务中包括的诸多操作要么都做,要么都不做。 一致性(consistency):事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。 隔离性(isolation):一个事务的...

远方水木 899

从数据到行动:客服运营必分析的8大核心维度

服务运营正从被动响应升级为数据驱动型战略体系。客服中心的海量交互数据能精准反映服务效能、客户体验及运营短板,关键在于实现数据的可视化与可操作化。本文系统剖析了八类核心数据指标:1)客户行为数据(CSAT/NPS/投诉内容);2)通话效率指标(AHT/接通率);3)服务质量(质检体系/情绪识别);4)坐席绩效(FCR/客户评价);5)流程与知识库(转接率/工单时效);6)渠道流量分析;7)异常预警机制;8)成本收益模型。通过构建多维数据分析体系,企业可在客户全生命周期管理中实现服务升级、风险防控与资源

2202_75469062的博客 1401

hibernate isolation 幻读

@transactional代表一个transaction Isolation默认是 FAULT           Use the default isolation level of the underlying datastore. 如果用oracle 则默认的是In the read committed isolation level, which is the default

1357

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Hibernate框架中的事务(隔离等级设置、事务提交、事务回滚)

1.Hibernate事务隔离等级设置: 一般情况下载属性文件中设置: hibernate.connection.isolation=4等号后面的数字表示意思如下: 1表示:读未提交 2表示:读已提交 3表示:可重复读 4表示:序列化 2.事务提交: Session session = HibernateUtil.getSession();//HibernateUtil

HLoach的博客 2632

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

hibernate 事务和隔离级别

本文主要是学习hibernate的数据库事务和隔离级别的设置 1、什么是数据库事务? 事务是数据库并发控制的基本单元,作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行,它具有原子性,一致性,隔离性,持久性。 2、事务并发有哪些问题? 1)第一类丢失更新:撤销一个事务时,把其他事务已提交的更新数据覆盖。 在没有事务隔离的情况下,两个事务都同时更新一行数据,但是第二个事

pingnanlee的专栏 3597

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Hibernate的事务的隔离性

事务的特性:原子性:指处于同一个事务中的多条语句是不可分割的。一致性:事务必须使数据库从一个一致性状态变换到另外一个一致性状态。隔离性:指多线程环境下,一个线程中的事务不能被其他线程中的事务打扰持久性:事务一旦提交,就应该被永久保存起来。如果不考虑事务的隔离性,会出现以下问题:脏读:指一个线程中的事务读取到了另外一个线程中未提交的数据。不可重复读(虚读):指一个线程中的事务读取到了另外一个线程中提...

琦彦 1万+

Hibernate之事务、隔离级别、悲观锁、乐观锁

事务需要保证原子性(Atomicity)、一致性(Consistence)、隔离性(Isolation behavior)、持续性(Durability),简称ACID。 原子性:一个事务内的操作要么全部成功,要么全部失败回滚。 一致性:事务内的数据,如果事务成功,则必须都是成功后的状态,如果失败,则必须都是最开始的状态,不能有的是成功后的状态,有的是开始的状态。 隔离性:在多个

China2010pan的专栏 5007

mysql oracle 事务隔离级别_数据库事务隔离级ORACLE数据库事务隔离级别介绍

两个并发事务同时访问数据库表相同的行时,可能存在以下三个问题:1、幻想读:事务T1读取一条指定where条件的语句,返回结果集。此时事务T2插入一行新记录,恰好满足T1的where条件。然后T1使用相同的条件再次查询,结果集中可以看到T2插入的记录,这条新纪录就是幻想。2、不可重复读取:事务T1读取一行记录,紧接着事务T2修改了T1刚刚读取的记录,然后T1再次查询,发现与第一次读取的记录不同,这称...

weixin_33089993的博客 227

事务 Hibernate

事务 是指作为单个逻辑工作单元执行的一系列操作,通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。 使用事务(用事务的sql语句(事务开始和事务提交) 包裹住 你要执行语句) 1.把事务打开 -begin 2.写你要执行语句 3.把事务进行提交 commit 4.把事务回滚(rollback;) 遇到断电 事务没有提交 那么事务会自动回滚

嘿嚯哈 249

事务与Hibernate

事务 原子性:指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。 使用事务(用事务的sql语句(事务开始和事务提交) 包裹住 你要执行语句) 1.把事务打开 2.写你要执行语句 3.把事务进行提交 4.把事务回滚(rollback;) 遇到断电 事务没有提交 那么事务会自动回滚 begin; update 表 set money=money-100 wher...

Anonymous_qin的博客 258

数据库事务的四大特征、自动/手动提交、事务的隔离级别

什么是事务? 事务:被事务修饰的一系列的操作看成‘一个操作’,这些操作要么同时成功,要么同时失败。 eg:德玛西亚给拉克丝转500元钱: 1.德玛西亚的余额减500 2.拉克丝的余额加500 分析: 但如果在一、二部之间出错了,那么第一步就会成功而第二部不会成功,那这500元钱不就没了嘛,显然这样不现实,这种情况下用事务就很合适. 在实现代码前,我们先学习几个sql语句: 1.开启一个事务-------START TRANSACTION; 2.回滚-----------------ROLLBACK;

m0_47163297的博客 1138

Java 之 事务与 hibernate

事物 原子性:指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。 使用事务(用事务的sql语句(事务开始和事务提交) 包裹住 你要执行语句) 1.把事务打开 2.写你要执行语句 3.把事务进行提交 4.把事务回滚(rollback;) 遇到断电 事务没有提交 那么事务会自动回滚 begin; update 表 set money=money-100 where user...

有时想得太简单的博客 721

Confluence fails to start and throws ‘MySQL session isolation level ‘REPEATABLE-READ‘

Confluence,在 Confluence 主目录,找到confluence.cfg.xml文件,并在标签下面添。(Confluence3.5.6 及以上)在 Confluence 中设置会话隔离级别。MySQL 以错误的事务隔离级别运行。从 3.5.6 开始,可以在全局或会话级别设置此属性。以通过编辑MySQL的文件(通常是namedon Windows操作系统)来配置MySQL服务器的设。自动设置正确的会话隔离级别,但升级的安装需要手动设置。

如果我写的内容,对您有所帮助,麻烦点个赞,评论下,谢谢 643
上一篇: Hibernate Criteria 多层次查询关联问题(转)
下一篇: Java创建、重命名、删除文件和文件夹
programloverjack
博客等级 码龄17年 5粉丝 252原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值