Hibernate锁机制

Hibernate支持两种锁机制:

  悲观锁(Pessimistic Locking):当数据被外界修改时保持原始状态,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁大多数情况下依靠数据库的锁机制实现。

  乐观锁(Optimistic Locking):主要由Hibernate提供的版本控制功能实现。

Hibernate的主要锁定模式:

(1) LockMode.NONE:无锁机制,这是默认的锁定模式。

(2) LockMode.WRITE:InsertUpdate记录时会自动使用此模式。

(3) LockMode.READ:在读取记录时会自动使用此模式。

(4) LockMode.UPGRADE:利用数据库的for update子句加锁。

(5) LockMode.UPGRADE_NOWAIT:Oracle的特定实现,利用Oraclefor update nowait子句实现加锁功能。

 

Hibernate中显式的指定锁定模式可以通过以下几种方式之一来表示:

(1) 调用Session.load()时指定锁定模式(LockMode)

session=HibernateSessionFactory.getSession();

Student stu=(Student)session.load(Student.class, 10,LockMode.NONE);

(2) 调用Session.lock()

session=HibernateSessionFactory.getSession();

Student stu=(Student)session.load(Student.class, 10);

session.lock(stu, LockMode.READ);

(3) 调用Query.setLockMode()

session=HibernateSessionFactory.getSession();

Query query=session.createQuery("from Student");

query.setLockMode("student", LockMode.NONE);

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云淡风轻58

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值