脏读
不可重复读
幻读
可序列化(符合事务的四个特性的正常情况 )

解释:
脏读:事务A对数据1做了更新,但是还没有来得及提交
此时事务B对数据1进行了查询获得了事务A更新后的数据,
但是事务A因为一些原因又进行了回滚,这就导致数据1回到了
最初状态,那事务B读取的数据就是错误的,这就是脏读

不可重复读:事务A查询了数据1,然后事务B更新了这个数据并进行了
提交,然后事务A又读取了这个数据,两个数据不一致,叫做不可重复读

幻读:事务A查询了a表,里面只有一条数据,然后事务B对a表进行了添加,
现在表里有两条数据,然后事务A又对表a进行了查询,这时候的查询就有两条数据
这种叫做幻读(大多数情况下数据库选择的隔离级别就是这里,允许出现幻读
因为如果要完全符合可序列化,也就是acid 那就表明事务A在执行的时候,其他
的事务就要等着)

Hibernate中的隔离级别
默认设置
Hibernate.connection.isolation= 4
1:读操作未提交(Read Uncommitted) 也就是脏读
2:读操作已提交(Read Committed) 也就是不可重复读
4:可重读(Repeatable Read) 也就是幻读
8:可串行化(Serializable)

可以在hibernate.cfg.xml中配置一行
<property name="hibernate.connection.isolation">4<property>

----------------------------------------------------
这是在数据库级别进行设置,也可以在代码方面进行设置
乐观锁
悲观锁

乐观锁

通过version字段(在数据库中插入一个version字段,数据类型要是整型int或者long等)
或timestamp字段(不推荐,因为在小的时候都有可能会重叠)实现

当对表数据进行添加和修改时,version字段会改变
当修改数据时,Hibernate会获取当前的version值,提交当前事务时,
如果version值和之前获取的不同,那就会抛出org.hibernate.StaleObjectStateException异常。

注解的形式

@Version
private Integer version;

xml配置的形式

<version name="version"/>

如:

<class name="User" table="user">
<cache usage="read-write"/> <id name="id">
<generator class="native"/>
</id> <property name="username"/>
<property name="password"/> <set name="addressSet" cascade="delete" inverse="true">
<cache usage="read-write"/>
<key column="userid"/>
<one-to-many class="Address"/>
</set>
<!--
<version name="version" column="xxxx"/>
-->
</class>

悲观锁 :

当前事务没有完成,其他事务都不能执行
只需要添加一个参数
Account account= (Account) session.get(Account.class,1,LockOptions.UPGRADE);

hibernate 事务的隔离级别的更多相关文章

  1. hibernate 事务的隔离级别 5.1

    脏读不可重复读幻读可序列化(符合事务的四个特性的正常情况 ) 解释: 脏读:事务A对数据1做了更新,但是还没有来得及提交 此时事务B对数据1进行了查询获得了事务A更新后的数据, 但是事务A因为一些原因 ...

  2. Hibernate中事务的隔离级别设置

    Hibernate中事务的隔离级别,如下方法分别为1/2/4/8. 在Hibernate配置文件中设置,设置代码如下

  3. [原创]java WEB学习笔记78:Hibernate学习之路---session概述,session缓存(hibernate 一级缓存),数据库的隔离级别,在 MySql 中设置隔离级别,在 Hibernate 中设置隔离级别

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  4. 事务之二:spring事务(事务管理方式,事务5隔离级别,7个事务传播行为,spring事务回滚条件)

    事物管理对于企业应用来说是至关重要的,好使出现异常情况,它也可以保证数据的一致性. spring支持编程式事务管理和声明式事务管理两种方式. 编程式事务管理使用TransactionTemplate或 ...

  5. MySQL事务学习-->隔离级别

    MySQL事务学习-->隔离级别 6 事务的隔离级别 设置的目的 在数据库操作中,为了有效保证并发读取数据的正确性,提出的事务隔离级别. 数据库是要被广大客户所共享访问的,那么在数据库操作过程中 ...

  6. SQL Server事务的隔离级别

    SQL Server事务的隔离级别 ########## 数据库中数据的一致性 ########## 针对并发事务出现的数据不一致性,提出了4个级别的解决方法:  隔离级别  第一类丢失更新  脏读 ...

  7. 事务的隔离级别及mysql对应操作

    /* 本次高并发解决之道 1,更改事务隔离级别为 read uncommitted读未提交 2,查询前设定延迟,延迟时间为随机 50-500 微秒 3,修改数据前将 超范围作为 限定修改条件 事务是作 ...

  8. MySQL(26):事务的隔离级别出现问题之 幻读

    1. 幻读 幻读(Phantom Read)又称为虚读,是指在一个事务内两次查询中数据条数不一致,幻读和不重复读有些类型,同样是在两次查询过程中,不同的是,幻读是由于其他事务做了插入记录的操作,导致记 ...

  9. MySQL(25):事务的隔离级别出现问题之 不可重复读

    1. 不可重复读 所谓的不可重复读(Non-Repeatable Read)是指事务中两次查询的结果不一致,原因是在查询的过程中其他事务做了更新的操作. 例如,银行在做统计报表的时候,第一次查询a账户 ...

随机推荐

  1. Spark常用算子-KeyValue数据类型的算子

    package com.test; import java.util.ArrayList; import java.util.List; import java.util.Map; import or ...

  2. Oralce查询后修改数据,弹窗报提示these query result are not updateable,include the ROWID to get updateable

    select t.*, (select a.ANNEXNAME from base_annex a where a.id = t.closeFile) closeFileName, (select a ...

  3. Elasticsearch Suggester 学习

    suggester搜索就像百度搜索框中的提示类似. Elasticsearch 中提供类似的搜索功能. 答案就在Suggesters API. Suggesters基本的运作原理是将输入的文本分解为t ...

  4. JavaScript 全部介绍

     1.new 表达式  new之后写函数名的话,就会把该函数作为构造函数来进行调用.   2.字符串型的运算  由于JavaScript的字符串型是不可变类型,所以字符串值本质上是不能改变的.这个答案 ...

  5. Multiprovide 实践理解

    “多重提供器”是一种“信息提供者”,它综合了多个“信息提供者”的数据以用于报告.“多重提供者”本身不包含任何数据.“多重提供者”的数据由所基于的“信息提供者”专门提供,这些“信息提供者”组合在一起进行 ...

  6. this license has been cancelled

    是因为IDEA注册码的问题, 解决方案: 修改此路径的hosts文件:C:\Windows\System32\drivers\etc\hosts 在其最后一行加入:“0.0.0.0 account.j ...

  7. ICE 的回调

    使用分布式计算中间件ICE到现在已经有一年多了,在这一年里里面对ICE的理解.应用比较熟悉. 使用ICE写分布式软件,确实是很方便:ICE比较稳定.可靠,调用返回速度低延迟,使用简单,学习曲线不是很陡 ...

  8. PHP Smarty无法解析模板文件

    /****************************************************************************** * PHP Smarty无法解析模板文件 ...

  9. Leetcode Longest Uncommon Subsequence I

    原题链接在这里:https://leetcode.com/problems/longest-uncommon-subsequence-i/#/description 题目: Given a group ...

  10. 服务器上传大小限制 --- 来自 FastAdmin 项目开发的引发的问题 (TODO)

    服务器上传大小限制 --- 来自 FastAdmin 项目开发的引发的问题 服务器上传有几个地方修改. FastAdmin 的配置. php.ini 的配置. NGINX 的配置.