首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Hibernate悲观锁和乐观锁的兑现

2012-09-27 
Hibernate悲观锁和乐观锁的实现Hibernate悲观锁和乐观锁:1.悲观锁:锁如其名,只要是在数据的处理过程中,数

Hibernate悲观锁和乐观锁的实现
Hibernate悲观锁和乐观锁:1.悲观锁:锁如其名,只要是在数据的处理过程中,数据就会被加锁,谁都不能访问,看……多悲观哇。2.乐观锁:相对悲观锁而言,采取了更加宽松的锁机制,大多是基于数据版本 ( Version )记录机制实现。

hibernate悲观锁的具体实现如下:

String sql="查询语句"; Query query=session.createQuery(sql); query.setLockMode("对象",LockModel.UPGRADE); 

说到这里,就提到了hiernate的加锁模式:
LockMode.NONE : 无锁机制。
LockMode.WRITE :Hibernate在Insert和Update记录的时候会自动获取。
LockMode.READ : Hibernate在读取记录的时候会自动获取。
这三种加锁模式是供hibernate内部使用的,与数据库加锁无关
LockMode.UPGRADE:利用数据库的for update字句加锁。


乐观锁:
最常用的方法就是在数据库中加入一个VERSON栏记录,在读取数据时连同版本号一同读取,并在更新数据时递增版本号,然后比对版本号与数据库中的版本号,如果大于数据库中的版本号则予以更新,否则就回报错误。

具体实现代码,文章后面有示例,请下载。

热点排行