hibernate 乐观锁

本文介绍了Hibernate中的乐观锁实现原理,通过在数据表中增加version字段进行版本控制。当两个事务同时修改同一数据时,如果第二个事务提交时version值不匹配,会抛出StaleObjectStateException异常,从而避免数据冲突。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

乐观锁采用的原理就是在表里边加version版本控制,

<versionname=“version”
column=“VERSION”
type=“integer”
/>

例子:

创建两个session:

Session session1=SessionFactory.openSession();

Session session2=SessionFactory.openSession()

对同一个数据进行操作:

Entity entity1=new Entity();

Entity entity2=new Entity();

entity1=session1.load(Entity.class,id);

entity1.setName(“name1”);

entity1.setName(“name1”);
Transaction tran1 = session1.beginTransaction();
session1.close();

entity2.setName(“name2”);
Transaction tran2= session2.beginTransaction();
session2.close();

运行到后边的tran2提交时会报异常:org.hibernate.StaleObjectStateException异常。
之所以报这个异常,就是因为我们在Entity里边增加了version,第一个事务提交之后version=version+1=2,而第二个事务提交时,version=1<2,就会 报这个异常,数据过时

U2FsdGVkX1/y3qBGTiRHBf5FCuYgyx5iEp5Qjr/NeAVKzbQ1+XiPKGRiCV04GGTm
PcGHOglZyK7Z453INsGW8CySyYQjNP0ZvkluuzgkjLs8hBUrR88AGMEx0wiXSwNb
+8uphtPd1Gs7eAPuuleEIqBDlEP+9bbwRu/GsUD8W8JaKpSZDiKt7jj4eMAIX3pW
BQbUT09OjojzyunSPOaafD1Aoo52arNu/Gpv0RuFngvubYpYYnYFQgwEqfuc8VKc
j/hZQNSNO+UKg8BIspGIY/QhEZtK9BUab1tWcIdn7AbCTRlBpvt3q2U4XgliH/If
tPptF+0ub3BQCfnlqeE8Rjt8ZFQUFxjgWvp0kW+N9jMRcjqfPqMcmXxVRhXHR90b
lKYXbyG1GC0J4pQ2zQrd2eqyHSX1Qycau39GsK+D1kxx2/mJpJxLkjtiLILKdJJD
U4IIBhFbWxEOR1Xh3bXYYsgQObnpxoov9pFNCwybq6jeE2YD5UdNclcWbh4dX/Xs
wnjStlCR35NM9CK+RymY4H7wprjGnzO/UcYw5oKbZjYmaa12MGKorECe211RUOaP
qwo4SnlNWcrYH4cqNbvAFJzhV+/FFKgU1vBXC2xlvR6os4b9yQ20Sod6CE54K6f4
T2TqtAWV1yTT1tv3DEjHCQUfF98ArVvS0m5y0U98qbaq5Oehylcjpuh2D02fNVke
FKqi9e2jXvL4LHicu/oOoqiaAbYfQLDZ4X2kj8yJS9J6I0wl7mpWUw633oP42WTF
fJO4nLPC1KnvnKCogJ03fpIc/5Ncxjv5NRLab5UTSmqJ8c7hL+AKJr0nI+rpa0mM
1T58ypj5zfNspwL6/GROECFHJVXHASGQI0EdvOfcnh2lbWP0ONOBlb5+7n04tvnW
yXAmOPG517+YEUY4SBp8yH5j5qppWB3jnTS60V9Z0zdFrXGAnwBHFSaLfC6R+00W
G+3Krv/0ostz3IDH3Yr/z9fjsZYkN9rXpXy6gtNvpR27jWr6p1PeKLKirbClXjAR
EZOORnTPB80B6es1OCmtz8H2rDcgPNqvi2YMnT/QLS7D3bZo/F2lVxJwbwukI3Lb
Qy4Ejblyf/omQJdXuwtKSx025+SKiEnvdr/aWnMD/TAcGIF9eo4wkLKABf8ZSdVG
zkjgy+VWxXsFBiZJIBWGYCO83LBStr8nqreUl6qMuIN07tHb69Q1BM9whGFxHkud
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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值