Hibernate 乐观锁与悲观锁

来源:互联网 发布:jar软件网站 编辑:程序博客网 时间:2024/05/22 09:38

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异常