码迷,mamicode.com
首页 > Web开发 > 详细

Hibernate学习:悲观锁

时间:2015-02-09 14:15:31      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:hibernate   悲观锁   

一:测试程序


二:代码分析

(1)debug方法testPessimisticLock,

Account a = (Account) session.load(Account.class, 1,LockMode.UPGRADE);
session.getTransaction().commit();

        在session提交的这一行,加上断点。

(2)执行方法testOperate

会发现,改方法并没有成功修改数据

(3)将testPessimisticLock断点走完

(4)testOperate才会成功执行。


三:知识点

LockMode.UPGRADE通常我们就同这个参数,加悲观锁

Account a = (Account) session.load(Account.class, 1,LockMode.UPGRADE);
查看执行的sql语句,就会发现sql语句后面出现了for update
    select
        account0_.id as id0_0_,
        account0_.balance as balance0_0_ 
    from
        Account account0_ 
    where
        account0_.id=? for update

Hibernate学习:悲观锁

标签:hibernate   悲观锁   

原文地址:http://blog.csdn.net/u013628152/article/details/43669447

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!