加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Hibernate lock方法:以指定的锁定模式进行锁定

发布时间:2020-12-15 02:39:27 所属栏目:Java 来源:网络整理
导读:lock 方法用来将指定的实体类对象以指定的锁定模式进行锁定。 语法: lock(Object object,LockMode lockMode) 参数说明: object:一个实体类的对象。 lockMode:锁定模式,可用的值如表所示。 LockMode类提供的集中锁定模式 锁定模式 功能简介 LockMode.NONE
lock 方法用来将指定的实体类对象以指定的锁定模式进行锁定。

语法:

lock(Object object,LockMode lockMode)

参数说明:
  • object:一个实体类的对象。
  • lockMode:锁定模式,可用的值如表所示。

LockMode类提供的集中锁定模式
锁定模式 功能简介
LockMode.NONE 表示无锁机制,是Hibernate的默认值。采用这种方式首先在Hibernate缓存中检索,存在则直接返回对象的引用;否则到数据库中加载对象
LockMode.READ 无论Hibernate缓存中是否存在,总是直接到数据库中加载。如果映射文件中设置了版本元素,则比较缓存中对象的版本与数据库中记录的版本是否一致
LockMode.UPGRADE 在LockMode.READ模式的基础上,如果数据库系统支持悲观锁(如Mysql和Oracle),则执行select...for?update语句,否则执行普通的select语句
LockMode.UPGRADE_NOWAIT 在上一模式的基础上,如果是Oracle数据库,则执行select...for?update?nowait语句,nowait作用是:如果执行该select语句的事务不能立刻获得悲观锁,会立刻抛出锁定异常,而不会去等待其他事务释放锁定

示例

应用 get 方法获取实体类的对象,并使用 LockMode.READ 模式锁定该对象,关键代码如下:
UserForm uf = new UserForm();  //定义保存实体类对象的JavaBean对象
uf = (UserForm)session.get(UserForm.class,1);  //获取编号为1的用户信息
session.lock(uf,LockMode.READ);  //锁定Lock对象

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读