前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hibernate中的事务隔离问题(脏读、不可重复读、幻读)

Hibernate中的事务隔离问题(脏读、不可重复读、幻读)

作者头像
用户2409797
发布2018-08-30 17:31:21
8820
发布2018-08-30 17:31:21
举报
文章被收录于专栏:Java修行之道

Hibernate中的事务隔离问题(脏读、不可重复读、幻读)

1.事务的特性

事务的四个特性:

1)原子性:事务是进行数据库操作的最小单位,所以组成事务的各种操作是不可分割的

2)一致性:组成事务的各种操作,要么全部成功,要么全部失败。其中有一个失败,事务无法完成

3)隔离性:在并发中,每个事务都是独立的

4)持久性:这是结果,表示在事务提交之后,数据将持久的保存到数据库

2.事务的隔离问题

事务的三个隔离问题:

1)脏读:一个事务读到了另一个事务还没提交的数据

如:A事务正在读一个数据a,但是这个数据被B事务读过,但是B事务还未提交。这就导致A事务读到了错误的数据

2)不可重复读:一个事务读到了另一个事务已经提交的数据

如:A事务中有两次相同的读取数据a的操作,第一次对数据a进行了读操作之后,B事务修改了数据a并提交,那么在A事务第二次读取数据a时,就得到了两个不同的结果

3)幻读:像发生了幻觉一样的操作

如:A事务在对一个表中的全部数据进行修改时,B事务向表中插入了一条新的数据,当A事务提交之后,你会发现还有一条数据(就是B事务新增的数据)没被修改。这就像发生了幻觉一样

3.事务的隔离级别

1) Serializable (串行化):可避免脏读、不可重复读、幻读

2) Repeatable read (可重复读):可避免脏读、不可重复读

3) Read committed (读已提交):可避免脏读

4) Read uncommitted (读未提交):最低级别,任何情况都无法保证

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-09-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档