Hibernate学习笔记8

举报
wh_bn 发表于 2021/12/15 22:42:08 2021/12/15
【摘要】   Hibernate学习笔记8 学习课程: 悲观锁 Hibernate_18_Pessimistic_lock 乐观锁 Hibernate_19_Optimistic_lock 学习内容: 锁具有排他性 ...

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. <!-- 乐观锁的控制字段 根据版本号 --><class name="Inventory" table="t_inventory"  optimistic-lock="version">    <id name="itemNo" >        <generator class="native" />    </id>    <!-- 必须配置于id后面 配置版本号字段 -->    <version name="version"></version>    <property name="itemName" />    <property name="quantity" /></class>

optimistic

冲突检测手段

更新丢失

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

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

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

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

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

还有其他的方式

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

文章来源: blog.csdn.net,作者:fengda2870,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/fengda2870/article/details/3301264

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。