MybatisPlus更新时会自动忽略传值为NULL的字段

2023-10-27

一、背景

最近在项目中使用定时任务同步数据,将一张表中的数据同步到另一张表,使用mybatisplus的自带封装的update的方法时,修改的某个字段为null时,会自动忽略我这个字段,导致这个字段还是原来未修改的值。
现在需要将属性中为null的也更新到表中

二、解决方案

2.1 使用@TableField(updateStrategy = FieldStrategy.IGNORED)注解添加在字段上

在这里插入图片描述

在枚举FieldStrategy中有五个属性如下

在这里插入图片描述

updateStrategy说明

加粗样式

2.2 在需要修改的实体类字段上加上@TableField(fill = FieldFill.INSERT_UPDATE)注解

在这里插入图片描述

FieldFill枚举说明

在这里插入图片描述

fill策略说明

在这里插入图片描述
2.重写mybatisPlus封装的update的方法,在需要传null值的字段加上以下操作,这是从其他的博文中找到的,自己没试过

UpdateWrapper<Student> stuUpdate = new UpdateWrapper<>();
stu.setStuGender(null);
stuUpdate.lambda().set(Student::getStuGender, stu.getStuGender()).eq(Student::getId, stu.getId());
studentService.update(stuUpdate);

缺点:相对来说较为繁琐,但解决了第一个方法出现的问题

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MybatisPlus更新时会自动忽略传值为NULL的字段 的相关文章

随机推荐

  • 如何开发kanzi插件,越详细越好

    开发Kanzi插件需要使用Kanzi SDK 它提供了一系列工具和技术 可以帮助开发者实现自己的设想 并将其应用在Kanzi上 首先 我们需要从Kanzi官网上下载Kanzi SDK 然后使用IDE 如Visual Studio或Eclip
  • Python代码规范:企业级代码静态扫描-代码规范、逻辑、语法、安全检查,以及代码规范自动编排(1)

    适用于企业实际使用Python或Python框架 Tornado Django Flask等 开发的项目作为扫描目标 进行代码规范 逻辑 语法 安全检查 代码风格规范主要有几个方面 命名规范 语言规范 格式规范 其中大部分命名规范和语言规范
  • rabbitmq命令小记录

    rabbitmq学习的一些链接 http blog csdn net anzhsoft article details 19563091 检查是否有内存泄露 sudo rabbitmqctl list queues name message
  • JAVA毕业设计课设源码分享50+例

    1 基于Springboot员工薪资管理系统 2 基于server jsp智能化停车场管理系统 3 基于SSM网上点餐系统 4 基于springboot商城购物系统 5 基于springboot中小学教务管理系统 6 基于springboo
  • 如何搭建测试环境

    1 首先检查环境和本地网络是否正确 环境就是检查系统版本是否符合开发要求 系统与本地是否能连接 2 找开发要软件包 安装数据库和服务器 把压缩包拖入 或rz 一键安装或单个yum install 3 上传项目包 确认上传的路径 文档 开发
  • vs更换本地git账号

    有人认为vs中用的git账号是哪个无所谓 其实不然 git账号不同 访问的权限就不一样 那么如果想跟换git账号该怎么做呢 win7 控制面板 gt 用户帐户和家庭安全 gt 凭据管理器 编辑普通凭据中的git账号或者直接删除 然后重启vs
  • rdesktop架构解析(RDP协议分析)

    转载自 http blog csdn net songbohr article details 5309650 本文立足于rdesktop的架构层次进行解析 算是抛砖引玉 国内对RDP协议深入解析的资料到本文发布时为空白 ps 昨天在nok
  • UVM基础-sequence library

    一 sequence library的用法 1 1 sequence library在环境中的使用 uvm sequence library定义为是一堆sequence的集合 本质上其实就是uvm sequence 只不过在普通的uvm s
  • Python实现一个情人节必备表白神器——跳动的爱心,基于tkinter实现

    前言 包子们 晚上好 一般能够看到这篇文章的小伙伴 不是单身狗 那也得是一个贵族 如果你有心仪的对象啦 如果你想表白一个女生啦 如果你还在想着怎么表白女神 这不是就给大家安排好了 跳动的爱心 怎么说呢 用这个表白也可以的 万一就成了呢 哈哈
  • GOF设计模式(04)桥接模式

    简介 一 定义 1 概念 桥接 Bridge 模式 将抽象部分与其实现部分分离 使得他们都可以独立地变化 它是一种对象结构型模式 又称为接口模式 桥接符合开闭原则和单一职责原则 2 理解 在使用桥接模式时 我们首先应该识别出一个类所具有的两
  • CNN、RNN用于时间序列预测的代码接口和数据格式详解(pytorch)

    网上对时序问题的代码详解很少 这里自己整理对CNN和RNN用于时序问题的代码部分记录 便于深入理解代码每步的操作 本文中涉及的代码 https github com EavanLi CNN RNN TSF a toy 一 1D CNN 1
  • [人工智能-深度学习-32]:卷积神经网络CNN - 常见分类网络- AlexNet网络结构分析与详解

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 120837261 目录 第1章 卷积神
  • Eclipse Mars(4.5.2) 安装Gradle 插件

    第一步 选择Eclipse Marketplace 第二步 搜索Buildship gradle插件 并安装 第三步 gradle 安装授权协议 第四步 点击confim 完成安装后要求重启 Eclipse 第五步 Eclipse查看是否有
  • 2023牛客暑假多校训练营2

    D The Game of Eating 贪心 题目说每个人只关心自己享用的菜肴 而不考虑他人 每个人的目标都是使得自己喜欢的菜肴尽可能多 也就是说每个人都很鸡贼 它们当下都是做出最有利于自己的选择 对于某一个人 他首先会算在他之后他最喜欢
  • 计算机探秘二 (算盘与二进制)

    上次我们说到如何将数字通过CPU的电路线 后面我们称为数据线 传给它 在说这个问题前 我们一起看下咱老祖宗发明的计算神器 算盘 它长这样的 算盘分上珠和下珠 下珠每个珠子表示一个 上珠每个珠子表示5个 上下珠之间有一根细长的圆杆相连 具体计
  • linux驱动程序运行优先级,如何调整Linux内核启动中的驱动初始化顺序(late_initcall和module_init)...

    在init h 中有如下定义 define pure initcall fn define initcall 0 fn 1 define core initcall fn define initcall 1 fn 1 define core
  • STM32串口IAP(YModem) (转载)

    在之前的 STM32串口IAP 一文中 通过传输数据流来升级程序 但是这种 裸 数据的传输方式存在这许多的问题 比如它没有容错机制 不能保证数据的正确传输 还比如说它无法获知升级文件的信息 导致它在判断何时停止接收数据上 犹豫不决 正式为了
  • Cobalt-Strike基本使用

    Cobalt Strike 简介 Cobalt Strike 简称为CS 是一款基于java的渗透测试工具 尤其是后渗透阶段 自3 0开始已经不再使用Metasploit框架而作为一个独立的平台使用 这款工具有其他很多渗透测试工具没有的团队
  • Git-远程仓库(GitLab)

    系列文章 Git 入门小结 Git 分支 Git 常用命令 Git 注册远程仓库 Git 远程仓库 1 生成SSH KEY ssh keygen t rsa C youremail xx com git里注册的邮箱 可以用git confi
  • MybatisPlus更新时会自动忽略传值为NULL的字段

    三种方案解决MybatisPlus更新时会自动忽略传值为NULL的字段 一 背景 二 解决方案 2 1 使用 TableField updateStrategy FieldStrategy IGNORED 注解添加在字段上 在枚举 Fiel