您的位置:首页 > 其它

事物隔离级别以及事物传播属性

2017-03-01 00:11 337 查看

事物隔离级别

事物隔离级别是为解决脏读、幻读、不可重复读

脏读:尚未被确定提交的数据被其他事物读取到

幻读:进行select时间点上的数据与之后实际的情况不同,即会新增数据

不可重复读: 同一数据同时被多个事物读取,多个事物可对同一数据同时进行修改,造成数据前后不一致。

SERIALIZABLE 序列化

最高级别的事物隔离级别

事物按照顺序执行: 解决了脏读、幻读、不可重复读

REPEATABLE READ 可重复读

在进行Select时的数据将不可进行修改,但是数据可以新增

解决了脏读、不可重复读,会出现幻读

READ COMMITED 读提交

事物在读取数据后立即释放了读锁,导致其他事物可以修改此数据。

解决脏读,会出现幻读、不可重复读

READ UNCOMMITED 读未提交

数据在未提交时可以被其他事物读取

会出现 脏读、幻读、不可重复读

事物传播属性

REQUIRED

已存在一个事务,则加入该事务,否则创建一个新的事务.

Spring默认的传播行为

REQUIRES_NEW

创建新的事物,如果已经存在一个事物则挂起此事物、

SUPPORTS

如果存在以存在一个事物且则加入此事物,否则在无事物模式下运行

NOT_SUPPORTED

在无事物模式下运行,如果存在事物则挂起该事物

MANDATORY

强制使用事物,不存在事物则抛出异常

NESTED

当前存在事务,则将该方法运行在嵌套的事务中。被嵌套的事务可以从当前事务中单独的提交和回滚。如不存在事务,则创建新的事务

NEVER

在无事物环境下运行,如存在事物则抛出异常
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: