SQL事务隔离级别

我们在Hibernate的Environment.java文件中可以看到下面的注释:
 *


 *  
hibernate.connection.isolation

 *  
JDBC transaction isolation level (only when using
 *     java.sql.DriverManager)
 *  

 *
 这说明我们可以在hibernate.cfg.xml中配置数据库的事务隔离级别,
 一般来说,数据库的隔离级别分类如下:
 
 SQL 事务隔离级别
隔离级别                     脏读(Dirty Read)  不可重复读(NonRepeatable Read)  幻读(Phantom Read) 
读未提交(Read uncommitted)  可能               可能                              可能 
读已提交(Read committed)  不可能               可能                              可能 
可重复读(Repeatable read)  不可能              不可能                            可能 
可串行化(Serializable )    不可能              不可能                            不可能

可不要小看这段注释,我今天就犯错了:

//.....事务A开始
Time_limit_process tlp=ProcessLimitFacade.getLimitByProcessID(dpDTO
                .getProcessInsCtrl());
tlp.setSTATUS(2);
ProcessLimitFacade.update(tlp);//这个方法使用另外的事务B
//......事务A结束

结果可想而知了!
难的是update方法中不抛错,程序就永久的停在了那个方法中,好像进入了一个黑洞.........

另外要提一点:SQL标准对事务隔离级别的规定,是按该级别不可能发生什么问题来确定的,不一定会发生这样的
问题;所以,不同的数据库对事务隔离的级别约定不一样,比如,有的数据库把 可重复读级别 按 可串行化来
对待.




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值