java并发修改数据,使用乐观锁

java并发修改同一记录时,避免更新丢失,需要加锁。要么在应用层加锁,要么在缓存加锁,要么

在数据库层使用乐观锁,使用 version 作为更新依据。

资金相关的金融敏感信息,使用悲观锁策略,正例:悲观锁遵循一锁二判三更新四释放的原则

在实体类中加上如下注解,由前端统一传更新之前的版本号

java 复制代码
@ApiModelProperty(value = "版本号")
@TableField(value = "VERSION", fill = FieldFill.INSERT, update = "%s+1")
@Version
private Integer version;

在sql执行修改时,sql如下

sql 复制代码
update tablename set version = version+1 where version = oldVersion
相关推荐
消失的旧时光-194322 分钟前
第十四课:Redis 在后端到底扮演什么角色?——缓存模型全景图
java·redis·缓存
BD_Marathon23 分钟前
设计模式——依赖倒转原则
java·开发语言·设计模式
BD_Marathon27 分钟前
设计模式——里氏替换原则
java·设计模式·里氏替换原则
Coder_Boy_29 分钟前
Deeplearning4j+ Spring Boot 电商用户复购预测案例中相关概念
java·人工智能·spring boot·后端·spring
css趣多多31 分钟前
add组件增删改的表单处理
java·服务器·前端
雨中飘荡的记忆33 分钟前
Spring Batch实战
java·spring
Java后端的Ai之路40 分钟前
【Spring全家桶】-一文弄懂Spring Cloud Gateway
java·后端·spring cloud·gateway
devmoon42 分钟前
在 Polkadot Runtime 中添加多个 Pallet 实例实战指南
java·开发语言·数据库·web3·区块链·波卡
Evand J1 小时前
TDOA(到达时间差)的GDOP和CRLB计算的MATLAB例程,论文复现,附参考文献。GDOP:几何精度因子&CRLB:克拉美罗下界
开发语言·matlab·tdoa·crlb·gdop
野犬寒鸦1 小时前
从零起步学习并发编程 || 第七章:ThreadLocal深层解析及常见问题解决方案
java·服务器·开发语言·jvm·后端·学习