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面经实录9176 分钟前
JVM高频面试总结(背诵完整版)
java·开发语言·jvm
ChoSeitaku10 分钟前
11.异常_throws_try...catch_BigInteger_BigDecimal_Date_Calendar_LocalDate_Integer
java
胡志辉的博客13 分钟前
完全开源、本地 SQLite 管理一切:我写了一个桌面邮件客户端 OneMail
java·sqlite·开源
沪漂阿龙17 分钟前
Java JVM 面试题详解:JVM运行原理、内存模型、堆栈方法区、GC垃圾回收、JIT编译、类加载机制与线上调优全攻略
java·开发语言·jvm
小碗羊肉19 分钟前
Maven高级
java·开发语言·maven
不知名的老吴20 分钟前
C++ 中函数对象的形式概述
开发语言·c++
星秀日26 分钟前
Spring Boot + Sa-Token 实时聊天系统:用户注册流程源码深度剖析
java·人工智能·spring·状态模式
Shan120529 分钟前
C++中函数对象之重载 operator()
开发语言·c++·算法
HelloWorld1024!38 分钟前
c++核心之万字详解 * 和 & 所有用法(指针、引用、取地址、解引用、常量修饰)
开发语言
Legendary_00844 分钟前
解析 PD Sink 与 LDR6500U:Type-C 取电的核心密码
c语言·开发语言