Hibernate学习笔记8

 

Hibernate学习笔记8

学习课程:

悲观锁

Hibernate_18_Pessimistic_lock

乐观锁

Hibernate_19_Optimistic_lock

学习内容:

锁具有排他性

悲观锁

隔离级别越高,并发性越差

pessimistic

实现:依赖于数据库机制,在整个过程中将数据锁定,其他任何用户都不能读取和修改

适用于短事务

库存

t_inventory

编号

名字

数量

itemNo

itemName

quantity

1

脑白金

1000

只让一个用户读取到数据

另一个数据无法读取到数据

Inventory.java

采用如下的load方法

load(class, id , lockMode)

testLoad1

testLoad2

并发性差

乐观锁

实体类添加version字段

  1. <!-- 乐观锁的控制字段 根据版本号 -->
  2. <class name="Inventory" table="t_inventory"  optimistic-lock="version">
  3.     <id name="itemNo" >
  4.         <generator class="native" />
  5.     </id>
  6.     <!-- 必须配置于id后面 配置版本号字段 -->
  7.     <version name="version"></version>
  8.     <property name="itemName" />
  9.     <property name="quantity" />
  10. </class>

optimistic

冲突检测手段

更新丢失

optimistic-lock="version"乐观锁的控制字段 根据版本号

<version name="version"/>必须配置于id后面 配置版本号字段

大多数基于数据版本记录机制(version)实现,一般式在数据库表中加入version字段

读取数据时将版本号一同读出,以后更新数据时,版本号加一,如果提交数据时

version小于或等于数据表中version字段值,则认为数据时过期的,否则给予更新

还有其他的方式

采用时间戳通过时间的前后进行判断

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值