Hibernate中的锁机制
A 、乐观锁:
对多用户并发访问持有乐观的态度。
开发步骤:
     1 、实体对象(entity)中加入版本属性;
     2、 数据库表(table)中加入版本列;
     3 、xxx.hbm.xml 中加入<version />标签。
B 、悲观锁:
对多用户并发访问持有悲观观的态度。
数据库中锁得实现:
    1、数据库中查询操作加锁:select * from t_account for update;
    2、 数据库中插入等操作加锁 insert update delete db 默认加锁。
Hibernate 中锁的实现:
查询操作加锁(设置锁模式):
    Account account =(Account) session.get(Account.class, 111,LockMode.UPGRADE);
    Account account1 =(Account) session.load(Account.class, 111,LockMode.UPGRADE);
    Query query = session.createQuery("from Account as a where a.id = 111 ");
    query.setLockMode("a", LockMode.UPGRADE);
    Account account = (Account)query.uniqueResult();
Hibernate 锁模式:
LockMode.UPGRADE:
    如果别的用户先于我为数据库加锁,等待用户释放锁后,在加锁。
    LockMode.UPGRADE_NOWAIT:
如果别的用户先于我为数据库加锁,放弃操作,并抛出异常。

由于本人知识水平有限,总文章中倘若有错误的地方,欢迎批评指证。

相关文章:

  • 2022-12-23
  • 2021-09-25
  • 2022-12-23
  • 2021-09-07
  • 2021-07-21
  • 2022-12-23
  • 2021-06-24
猜你喜欢
  • 2021-04-28
  • 2021-06-26
  • 2021-10-14
  • 2021-09-01
  • 2021-11-27
相关资源
相似解决方案