(转)Hibernate事务管理
http://blog.csdn.net/yerenyuan_pku/article/details/70650239
事务介绍
什么是事务?
事务就是逻辑上的一组操作,组成这组操作的各个单元要么全部成功,要么全都失败。
事务的四个特性
- 原子性:不可分割的一个整体。
- 一致性:事务在执行前后,要保证数据的一致。
- 隔离性:一个事务在执行的过程中,不应该受到其它事务的干扰。
- 持久性:事务一旦结束,数据就持久化到数据库中。
不考虑事务的隔离性,会产生什么问题?
不考虑事务的隔离性,会产生如下问题:
- 脏读:一个事务读取到另一个事务的未提交数据。
- 不可重复读:一个事务读取到另一个事务提交的数据(主要是指update操作),会导致两次读取的结果不一致。
- 虚读(幻读):一个事务读取到另一个事务提交的数据(主要是指insert操作),会导致两次(也有可能是多次)读取结果不一致。
对于上述问题如何解决?
我们可以通过设置隔离级别来解决上述问题:
READ_UNCOMMITED
:读取未提交,它引发所有的隔离问题。READ_COMMITTED
:读已提交,阻止脏读,可能发生不可重复读与虚读。REPEATABLE_READ
:重复读,阻止脏读、不可重复读,可能发生虚读。SERIALIZABLE
:串行化,解决所有问题,但不允许两个事务同时操作一个目标数据。(效率低下)
常见数据库的默认级别:
- ORACLE默认的是事务隔离级别是READ_COMMITTED。
- MYSQL默认的事务隔离级别是REPEATABLE_READ。
Hibernate中设置事务隔离级别
Hibernate框架中可通过hibernate.connection.isolation
来设置事务的隔离级别,它可取的值有1、2、4、8:
- 1代表的事务隔离级别为READ UNCOMMITTED
- 2代表的事务隔离级别为READ COMMITTED
- 4代表的事务隔离级别为REPEATABLE READ
- 8代表的事务隔离级别为SERIALIZABLE
在Hibernate框架中设置事务的隔离级别,可在hibernate.cfg.xml核心配置文件中添加如下配置:
<property name="hibernate.connection.isolation">4</property>
转载于:https://www.cnblogs.com/telwanggs/p/6964045.html
(转)Hibernate事务管理相关推荐
- Hibernate事务管理-HibernateTransactionManager-对hibernate session的管理
由于对SSH还停留在比较初级的应用水平上,今天在遇到一个疑惑时折腾了很久,具体问题是这样的, 有这么一个测试方法, 1 public static void test1() { 2 Applicati ...
- 【大话Hibernate】hibernate事务管理
事务(Transaction)是工作中的基本逻辑单位,可以用于确保数据库能够被正确修改,避免数据只修改了一部分而导致数据不完整,或者在修改时受到用户干扰. 数据库向用户提供保存当前程序状态的方法,叫事 ...
- Hibernate事务管理
事务只是一个工作单位(单元). 在这种情况下,如果一个步骤失败,则整个事务失败(称为原子性). ACID属性(原子性,一致性,隔离性和持久性)可以描述事务. Hibernate中的事务接口 在hibe ...
- Spring对Hibernate事务管理
http://www.cnblogs.com/m-xy/archive/2013/05/14/3077627.html(挺好的) 还有一种用parent的配置方式,parent配置到哪个层面,事务就控 ...
- Spring中的事务管理详解
在这里主要介绍Spring对事务管理的一些理论知识,实战方面参考上一篇博文: http://www.cnblogs.com/longshiyVip/p/5061547.html 1. 事务简介: 事务 ...
- Spring 事务管理高级应用难点剖析
Spring 事务管理高级应用难点剖析: 第 1 部分 http://www.ibm.com/developerworks/cn/java/j-lo-spring-ts1/index.html htt ...
- 说说 Spring 事务管理的实现类
spring 将事务管理委托给底层具体的持久化实现框架去完成,所以 Spring 为不同的持久化实现类,都提供了 PlatformTransactionManager 接口的实现类. 事务 说明 or ...
- Spring 事务管理高级应用难点剖析--转
第 1 部分 http://www.ibm.com/search/csass/search/?q=%E4%BA%8B%E5%8A%A1&sn=dw&lang=zh&cc=CN& ...
- Spring JDBC-混合框架的事务管理
概述 问题 解决方案 示例Hibernate Spring JDBC 概述 Spring 抽象的 DAO 体系兼容多种数据访问技术,它们各有特色,各有千秋. Hibernate 是非常优秀的 ORM ...
最新文章
- 微信小程序 实现复制到剪贴版功能
- 从普本到北大:我的跨校跨专业考研经验
- 冲刺阶段——Day5
- 基于X86平台的PC机通过网络发送一个int(32位)整数的字节顺序
- 数据产品-数据可视化大作“数据大屏”
- java里pom.xml是啥意思_pom.xml详解
- 花了 4 天,破解 UNIX 联合创始人 39 年前的密码!
- 修改Chrome默认搜索引擎为Google.com
- 为什么派生的子类报错不能实例化抽象类_C# 接口与抽象类实例分析
- gvim的常用编辑快捷键
- EasyUI:datagrid清空所有选择行
- 基于扩频信号的水声信道数据传输系统仿真,研究满足了WSSUS假设的瑞利信道模型,采用相干BPSK调制,联合多普勒Rake接收机
- NTC——热敏电阻的采集方法
- 【密码术】openssl椭圆曲线密钥对生成
- 转换金额为大写人民币-Java
- Single shot object detection SSD using MobileNet and OpenCV
- 视野 | OpenSearch,云厂商的新选择?
- matlab谐波电流测量,基于MATLAB谐波电流检测仿真研究
- TL431应用和原理,TL431应用的注意事项
- 解决selenium控制webdriver总是被网站检测的问题
热门文章
- (97)序列检测器状态转移图,面试必问(二十一)(第20天)
- java 跨平台 ios_OGEngine发布跨平台版本,支持iOS及Android
- cpuid linux,Linux下获取CPUID、硬盘序列号与MAC地址(2)
- RTT 操作片上flash
- leecode-11盛最多水的容器C版-双指针的使用
- python set并集update_Python中集合set()的使用及处理
- 数据结构--循环队列
- 数值计算方法(三)——变步长梯形法与龙贝格算法
- uboot copy_from_nand代码详解
- php添加自定义头部关键字,WordPress主题制作中自定义头部的相关PHP函数解析