Hibernate悲观锁通过数据库底层控制,在SQL语句或HQL语句后面加句for update 即可实现悲观锁的功能
例: select * from person where id = 1 for update ; 执行了这条语句,数据库就把这条记录给锁定了,
Hibernate乐观锁
乐观锁是通过程序来控制的
操作有两步:
第一,在锁定的那个类上加个int (其它类型也可以) 类型的version变量,为其生成set get方法
第二,在hbm文件里添加<version name="version" column="version" type="int" />
乐观锁会抛出org.hibernate.StaleObjectStateException异常
本文详细介绍了Hibernate中两种重要的锁机制——乐观锁和悲观锁。悲观锁通过数据库底层控制实现,在SQL语句后添加forupdate关键字即可;而乐观锁则通过程序控制,需要在实体类中增加version字段并在hbm文件中进行配置。当使用乐观锁时,如果并发修改冲突将抛出StaleObjectStateException异常。
830

被折叠的 条评论
为什么被折叠?



