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
相关推荐
java1234_小锋13 小时前
Spring里AutoWired与Resource区别?
java·后端·spring
风象南13 小时前
Spring Boot 定时任务多实例互斥执行
java·spring boot·后端
崎岖Qiu13 小时前
【深度剖析】:结合 Spring Bean 的生命周期理解 @PostConstruct 的原理
java·笔记·后端·spring·javaee
毕设源码-郭学长13 小时前
【开题答辩全过程】以 基于Springboot旅游景点管理系统的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端
嫂子开门我是_我哥13 小时前
第十五节:文件操作与数据持久化:让程序拥有“记忆”
开发语言·python
是三好13 小时前
JUC并发编程
java·开发语言
哈哈不让取名字13 小时前
分布式日志系统实现
开发语言·c++·算法
3GPP仿真实验室13 小时前
【MATLAB源码】6G:感知辅助毫米波 MIMO 信道估计仿真平台
开发语言·matlab·智能电视
芬加达13 小时前
leetcode221 最大正方形
java·数据结构·算法
猿小羽13 小时前
深度实战:Spring AI 与 MCP(Model Context Protocol)构建下一代 AI Agent
java·大模型·llm·ai agent·spring ai·开发者工具·mcp