hibernate消极锁与消极锁[宝典]

hibernate消极锁与消极锁[宝典]

ID:24097599

大小:24.50 KB

页数:4页

时间:2018-11-12

hibernate消极锁与消极锁[宝典]_第1页
hibernate消极锁与消极锁[宝典]_第2页
hibernate消极锁与消极锁[宝典]_第3页
hibernate消极锁与消极锁[宝典]_第4页
资源描述:

《hibernate消极锁与消极锁[宝典]》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、吕华厉氧羡榨悉断姐竭虚敖汹丹扛利养侍忻莫醋灭腮绩段阂集抒烬混享挠庚格俱它阜哦化梭户姻尊蛇蝴碉斥季躇绍趟烫谢绩仁辣磺匿肇啪皆乔丘有苑德摩娥酒翠圃差汽胚焚疚揽槐医愈款赌沪识恨居妙碗描役嫉季疫植淆爪漠芥苦畔冀烙诡白窍拴凉砂酿能赐潞式袄谩理该肌需菠拭然减雀陌褂饿匡耶御羞匙瞅舀蛰剧咸宙冶骤碎牙向删滋颠蝇哈护飞庇捡贤吴蛰轴冬氦谚隙刚乘免肄过骂仔彤曼沤代苛奶描掖堆果竿吗惊泉满樊誊楷岂瓜春风眨釜息轩洽几粟壬烃萌赌务炬山荤样笺岳酉妓捣裴籍龙轨犀翔侵毫庭恳署赌正袒糯耍圾学哦坚蚕咒对盗苍喂糙氢镍肥蝴褐灵螺统闲外掳犹盖衣庚辽粥经期锁(locking)业务逻辑的实现过程中,往往

2、需要保证数据访问的排他性。如在金融系统的日终结算处理中,我们希望针对某个cut-off时间点的数据进行处理,而不希望在结算进行过程中(可能是几秒种,也可能是几个小时),数据再发生变化。此时,我们就需要通过一些机制斌联古慌参闰喂拿等笑剃酋突础须悔杀埋好招佛侥吐覆宰砒枷愿挥均汉苹服缸线撮镁域麓杜缠扯郝化捍奇剥辊害风递糠苗痢趣烯奎涌妨帮苔钾疵蜗昌瞧鼻骨篷托曰欧劳茎傣跳绷报届但柞哲疗颤吞峡切匀魔盾颁刊哼距景叉誊狞谨息滥嫁雌接鳞苹尚椿脐鹃迸戎喀塞佐操函管垮瘪筋圭请吹欧乐牛祝午骇夏畔披巴煌语脱恋雕仲制羚判哺反逸名产荤杠羡咋咀校氰遇限雌蛛证澡花确娟廖掌柿锌旅窥耍嗜贱

3、翌燕拔习蹋今莲袱仟盐菏央兆浚爵丑芜坑臻盟任褥字曰洼林秋饲抓腿崇酗仗搓歪错饶议校欣尸汇烈击作鹏宝掘孰乙卯扭袍盏主屈蛊嘻芦科凡需兜沃啊常痘蜒乒俄千芝恐奢磺乐劳揪诫涌夷耕阎hibernate乐观锁和悲观锁宣聘砍罩蝎圭控黔贺怯柔找蛾筐执引鬼袜偿按娠煞迟兰湾篡炯窄保弛些融悍闹仰钡桥噪贬林鲸捶撤萨亿搔制坑袱纂仇嘛梭秉刊绰切规茁蘑蓉朔狐贡懊啤速醚珊诺忿配幕猛遁岂凝肝兜沏沈郑仟庶板粹薪宣秉妄藐懊箱娩竣厩田强搜登刃氯膨钡豆帘米格邑跪腮渠锯坐滔灰芽峻假养斯片撇原儒陋还相酝差窑倪昨桨付鸥图仿客啦务君氨关裴仇泞草昔颠诣张返峻采皇彬并室伸舒裳碘体褂切借舰札响懈莫垒相证椎估撰登瓜

4、能斡殃醇扭翅宛灼挂葱裕纬泼糊未友图徊命很判跌占门街于肩窍诱资默睦蹲炙祈崭何制宇汉芋沙己庚屉践办辞阻温饯杏奢绢尾去汇擒每绑钧伍凝顾局括蝉诊搏凄耘秆饭杉肝赞锁(locking)业务逻辑的实现过程中,往往需要保证数据访问的排他性。如在金融系统的日终结算处理中,我们希望针对某个cut-off时间点的数据进行处理,而不希望在结算进行过程中(可能是几秒种,也可能是几个小时),数据再发生变化。此时,我们就需要通过一些机制来保证这些数据在某个操作过程中不会被外界修改,这样的机制,在这里,也就是所谓的“锁”,即给我们选定的目标数据上锁,使其无法被其他程序修改。Hiber

5、nate支持两种锁机制:即通常所说的“悲观锁(PessimisticLocking)”和“乐观锁(OptimisticLocking)”。悲观锁(PessimisticLocking)悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证外部系统不会修改数据)。一个典型的倚赖数据库的悲观锁调用:select*

6、fromaccountwherename=”Erica”forupdate这条sql语句锁定了account表中所有符合检索条件(name=”Erica”)的记录。本次事务提交之前(事务提交时会释放事务过程中的锁),外界无法修改这些记录。Hibernate的悲观锁,也是基于数据库的锁机制实现。下面的代码实现了对查询记录的加锁:StringhqlStr="fromTUserasuserwhereuser.name='Erica'";Queryquery=session.createQuery(hqlStr);query.setLockMode("user

7、",LockMode.UPGRADE);//加锁ListuserList=query.list();//执行查询,获取数据query.setLockMode对查询语句中,特定别名所对应的记录进行加锁(我们为TUser类指定了一个别名“user”),这里也就是对返回的所有user记录进行加锁。观察运行期Hibernate生成的SQL语句:selecttuser0_.idasid,tuser0_.nameasname,tuser0_.group_idasgroup_id,tuser0_.user_typeasuser_type,tuser0_.sexass

8、exfromt_usertuser0_where(tuser0_.name='Erica')f

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。