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
相关推荐
MI_farmer几秒前
Anaconda 安装在 D 盘但虚拟环境跑到 C 盘,以及 Conda PermissionError: WinError 5 的解决方法
c语言·开发语言·conda
“AI国潮设计-小江”8 分钟前
[AIGC实战] 基于Stable Diffusion的潮汕非遗IP自动化生成工作流(附Python批量处理脚本)
开发语言·人工智能·python·prompt·aigc
不会写DN9 分钟前
Go日志库工程选型与逃逸分析评测报告
java·服务器·golang
SL_staff29 分钟前
合规性折旧:当知识资产因主权缺位在审计中‘功能性清零’
java·设计模式·开源
wzq11_66629 分钟前
Kubernetes集群——基础篇(基础知识与搭建步骤一遍过!!!)
java·容器·kubernetes
布莱克60532 分钟前
在C++中,构造函数能不能是虚函数?析构函数为什么要虚?
开发语言·c++·构造函数·析构函数·虚函数
Dreams_l34 分钟前
基于SpringBoot实现的抽奖系统(一)
java·spring boot·后端
落魄实习生40 分钟前
Agent Scope Java 2.x 系列【1】核心架构
java·开发语言·架构
一水鉴天41 分钟前
三套语言:STL SPL/ SQL 20260928(元宝)
开发语言
鬼手点金1 小时前
Claude Code示范案例-常用快捷命令
java·服务器·前端·计算机视觉·前向传播