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