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
相关推荐
java硕哥14 分钟前
Spring源码debug方法
java·后端·spring
杂货铺的小掌柜26 分钟前
MAC版IDEA常用快捷键
java·macos·intellij-idea
阿里嘎多学长33 分钟前
2025-12-31 GitHub 热点项目精选
开发语言·程序员·github·代码托管
xjz184238 分钟前
JVM虚拟线程:JEP 444开启Java并发编程新纪元
java
JH307338 分钟前
Spring Retry 实战:优雅搞定重试需求
java·后端·spring
无限进步_43 分钟前
【C语言】循环队列的两种实现:数组与链表的对比分析
c语言·开发语言·数据结构·c++·leetcode·链表·visual studio
蓝眸少年CY1 小时前
测试Java性能
java·开发语言·python
何包蛋H1 小时前
数据结构深度解析:Java Map 家族完全指南
java·开发语言·数据结构
秃了也弱了。1 小时前
python监听文件变化:Watchdog库
开发语言·python
一路往蓝-Anbo1 小时前
C语言从句柄到对象 (五) —— 虚函数表 (V-Table) 与 RAM 的救赎
c语言·开发语言·stm32·单片机·物联网