首页 > 其他分享 >MyBatisPlus乐观锁批量更新

MyBatisPlus乐观锁批量更新

时间:2024-04-26 18:56:45浏览次数:18  
标签:MyBatisPlus 批量 示例 版本号 更新 entity 乐观

MyBatis-Plus 提供了乐观锁插件 OptimisticLockerInterceptor 用于处理乐观锁,但是对于批量更新操作,乐观锁插件默认不会生效。要实现批量更新时的乐观锁控制,你需要自定义批量更新的逻辑。

以下是一个自定义批量更新并使用乐观锁的示例:

@Service
public class YourService {
 
    @Autowired
    private YourMapper yourMapper;
 
    public void updateBatchWithOptimisticLock(List<YourEntity> entityList) {
        for (YourEntity entity : entityList) {
            // 先查询最新版本号
            YourEntity latestEntity = yourMapper.selectById(entity.getId());
            // 如果查询到了,则设置最新的版本号进行更新
            if (latestEntity != null) {
                entity.setVersion(latestEntity.getVersion()); // 假设version字段是乐观锁字段
                // 执行更新操作
                yourMapper.updateById(entity);
            }
        }
    }
}

  

在这个示例中,我们通过主键查询数据库中的最新版本号,并将其设置到要批量更新的实体中,然后执行批量更新。这样,每次更新都会检查版本号,如果版本号不匹配,则会抛出异常。你需要在服务层处理这些异常,并根据业务需求决定是否重试或者如何处理。

注意:这个示例假设你的实体类中有一个名为 version 的字段用作乐观锁。具体的字段名和实现细节可能会根据你的应用和数据库表结构的不同而不同。

标签:MyBatisPlus,批量,示例,版本号,更新,entity,乐观
From: https://www.cnblogs.com/xianz666/p/18160690

相关文章

  • SpringBoot+MyBatisPlus报错 Invalid value type for attribute 'factoryBeanObjectTy
    依赖版本org.springframework.boot:spring-boot-starter-web:3.2.5com.baomidou:mybatis-plus-boot-starter:3.5.5错误Invalidvaluetypeforattribute'factoryBeanObjectType'问题原因:这个问题是由于依赖传递导致,在MyBatis起步依赖中的myBatis-spring版本过低,导致程......
  • 更新!!!Unity移动端游戏性能优化简谱
    UWA官方出品,结合多年优化经验撰写了《Unity移动端游戏性能优化简谱》,文章从Unity移动端游戏优化的一些基础讨论出发,例举和分析了近几年基于Unity开发的移动端游戏项目中最为常见的部分性能问题,并展示了如何使用UWA的性能检测工具确定和解决这些问题。 (1)性能优化的基本逻辑......
  • 《Vue.js设计与实现》 第八章 挂载与更新
    8.1挂载子节点和元素的属性8.2HTMLAttributes与DOMProperties8.3正确地设置元素属性8.4class的处理8.5卸载操作8.6区分vnode的类型8.7事件的处理8.8事件冒泡与更新时机问题8.9更新子节点8.10文本节点和注释节点8.11Fragment......
  • [python省时间]处理文档,包括批量查找,替换,
    1、批量查找替换#-*-coding:utf-8-*-importosimportre#path=os.getcwd()str_old='insert'str_new='frs.event.queue'file_formate='init.sql'file_sql=open(r'F:\bak\init_all.sql','r+',encoding=......
  • ES: 数据增,删,改,批量操作
    参考文章:https://blog.csdn.net/zhuchunyan_aijia/article/details/129461431 1>指定id新增_id=1新增一条,此命令重复执行,就是更新id=1的数据POSTemployee_zcy/_doc/1{"uid":"1234","phone":"12345678909","message"......
  • 利用expect交互批量修改普通用户过期密码
    因为公司接了一个密码托管的活,有10000多台机器,系统有openSUSE,SUSE,Ubuntu,centos,Oracle-Linux,而且什么版本都有,不给root权限,密码已经过期很多,先用expect的方式把过期密码修改完成,在进行托管#!/bin/bash#Author:shsnc-****#Time:2021-5-11#Name:for_user.sh#Version:V1.3#D......
  • springboot+mybatisplus+dynicDatasource 从数据库表中查询数据源 动态添加
    1、pom依赖<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.12</version><relativePath/><!--lookuppa......
  • Hessian矩阵以及在血管增强中的应用&mdash;OpenCV实现【2024年更新】
    有别于广为人知的Sobel、Canny等一阶算法,基于Hessian矩阵能够得到图像二阶结果,这将帮助我们深入分析图像本质。Hessian矩阵在图像处理中有着广泛的应用:其中在图像分割领域,包括边缘检测、纹理分析等;在图像增强领域,包括边缘增强、边缘消除等。本文从Hessian矩阵定义出发,通过清晰简......
  • 从 Uno Platform 4 更新 Uno Platform 5 的迁移方法
    本文记录我的一个小项目从UnoPlatform4更新UnoPlatform5的一些变更和迁移方法,由于项目太小,可能踩到的坑不多官方文档:MigratingtoUnoPlatform5.0表扬一下官方,文档写的很详细Directory.Packages.props所有的Uno相关包的版本更新:-<PackageVersionInclude="U......
  • dotnet 使用 windbg 运行脚本方式自动批量调试处理 dump 文件
    本文将和大家介绍一个简单且实际用途不大的使用windbg配合脚本的方式,进行自动化的大批量对dotnet系应用的dump进行自动化分析调试处理,可以自动根据调试需求输出dump文件的一些信息利用windbg执行调试脚本的能力,可以实现自动化调试dump文件,将调试dump文件获取的信息......