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
相关推荐
飞天狗1115 分钟前
零基础JavaWeb入门——第2课:让网页“活”起来 —— JSP是什么?
java·开发语言·前端·后端·web
梦@_@境34 分钟前
面向 Spring Boot 的可观测业务流程编排引擎
java·spring boot·后端
云烟成雨TD1 小时前
Spring AI Alibaba 1.x 系列【77】执行取消
java·人工智能·spring
醇氧1 小时前
【Linux】Java 服务生产级部署指南:实现常驻后台、开机自启与系统服务化管理
java·开发语言
凡人叶枫1 小时前
Effective C++ 条款16:成对使用 new 和 delete 时要采取相同形式
开发语言·c++·effective c++
JAVA面经实录9171 小时前
Netty 全套系统化学习文档(零基础到高阶面试完整版)
java·后端
weixin_523185321 小时前
Java面试高频题:Integer缓存机制与 equals、== 区别
java·缓存·面试
不吃土豆的马铃薯1 小时前
C++ 高性能网络缓冲区 Buffer 源码解析
linux·服务器·开发语言·网络·c++
数据法师2 小时前
QuickSay :基于 Qt 的轻量级快捷短语管理工具
开发语言·qt
Hui Baby2 小时前
MCP SSE协议发送注意
java