6.Hibernate的锁机制
- hibernate乐观锁的实现
版本号比较
在需要加锁表的对应的实体类上加入一个整形的属性用于记录本次查询的实体对应数据库中的版本号。
在配置文件中加入对应的信息:(在id标签下面添加)
<version name=”ver” column=”version”/>
即实体属性与数据库的的version字段对应。如果hibernate对实体进行更新的持久化时先比较其ver的值是否与当前数据库存中的值一样,若不一样,则说明已经有其它事务对该数据进行了操作。为了保持数据的一致性,则本事务rollback
时间验证
与版本比较类似(一般不用,不一定准确)
2. hibernate悲观锁的实现
悲观锁的实现借助于数据库,hibernate的实现为,在查询时为查询加上锁模式。这样数据库存会为查询的数据加上加上锁,只到此事物提交后别的事物才能查询此数据。这样可以防止修改丢失,不过并发性不高