您的位置:首页 > 编程语言 > Java开发

spring事物属性与隔离级别

2016-01-09 16:20 253 查看
1、spring的传播属性



PROPAGATION_REQUIRED 如果当前没有事务,就新建一个事务,如果已经存在一个事务,加入到这个事务中。这是最常见的选择。
PROPAGATION_SUPPORTS支持当前事务,如果当前没有事务,就以非事务方式执行。
PROPAGATION_MANDATORY使用当前的事务,如果当前没有事务,就抛出异常。
PROPAGATION_REQUIRES_NEW 新建事务,如果当前存在事务,把当前事务挂起。
PROPAGATION_NOT_SUPPORTED 以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
PROPAGATION_NEVER以非事务方式执行,如果当前存在事务,则抛出异常。
PROPAGATION_NESTED如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行与PROPAGATION_REQUIRED类似的操作。
2、spring事物的隔离级别

脏读:读取别人已经修改还没提交的数据

不可重复读:同一个事物多次查询,返回不同的数据。因为另一个事物在2次查询期间更新了数据

幻读:在读取几行时,另一个事物插入一些记录。随后查询,多出一些记录。

spring事物有四个隔离级别

数据隔离级别

隔离级别脏读不可重复读幻象读第一类丢失更新第二类丢失更新
READ UNCOMMITED允许允许允许不允许允许
READ COMMITED不允许允许允许不允许允许
REPEATABLE READ不允许不允许允许不允许不允许
SERIALIZABLE 不允许不允许不允许不允许不允许
read uncommited<read commited<repeatable read<serializable
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: