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
相关推荐
一只旭宝14 小时前
【C++ 入门精讲1】初始化、const、引用、内联函数 | 超详细手写笔记(附完整代码)
开发语言·c++
木井巳14 小时前
【递归算法】目标和
java·算法·leetcode·决策树·深度优先
亦暖筑序14 小时前
手写 Spring AI Agent:让大模型自主规划任务,ReAct 模式全流程拆解
java·人工智能·spring
敖正炀14 小时前
ReentrantLock 与 synchronized对比
java
XiYang-DING14 小时前
【Java】二叉搜索树(BST)
java·开发语言·python
weixin_4379576114 小时前
Mysql安装不成功
java
Lyyaoo.14 小时前
【JAVA基础面经】进程安全问题(synchronized and volatile)
java·开发语言·jvm
Andya_net14 小时前
Java | 基于 Feign 流式传输操作SFTP文件传输
java·开发语言·spring boot
无限进步_14 小时前
【C++】多重继承中的虚表布局分析:D类对象为何有两个虚表?
开发语言·c++·ide·windows·git·算法·visual studio
_Evan_Yao14 小时前
别让“规范”困住你:前后端交互中的方法选择与认知突围
java·后端·交互·restful