解决MybatisPlus updateById更新数据时将没传的数据也更新成了null
首先,MybatisPlus在调用自带的更新接口updateById时,如果没加任何配置,默认是不会将前端没传的数据也更新成null的。即MyBatisPlus不会更新传入实体中为null的字段,只会更新设置了不为null的值。 如果发现没传的也更新成null了的话,可以看看问题是否出在以下几个方面。
可能原因
1、后端定义的字段类型是否为包装类型?比如应该定义成Integer,结果你定义的是int,那么就算前端没传,也相当于传了默认值0,这样就把数据库原有的数据更新成0了。
2、该字段上是否加了注解?
@TableField(updateStrategy = FieldStrategy.IGNORED)
如果加了,那么就会打破MybatisPlus默认规则,将实体中为空的字段也更新成null了。
3、yml配置文件里是否有以下配置?
mybatis-plus:global-config:db-config:update-strategy: ignored
如果加了这个全局配置,就算字段上不加上述注解也没用了,默认就会把实体中为空的字段也更新成null。
解决方案
基础类型改为包装类型、去掉@TableField(updateStrategy = FieldStrategy.IGNORED)注解,这些都好做。但如果原因是出在上述第3条,配置文件里有微服务统一的配置,你也不好删,可以从以下两个角度考虑解决:
1、在mapper的xml里手写updateSelective的sql,即自己用sql控制字段在不为空的情况下才更新,不再用MybatisPlus的默认update接口。
2、在调用updateById前,首先用selectById将数据库的旧数据查出来,然后给这个旧实体赋上更新的数据,这样没传的那些数据也会带上旧的值了。
相关文章:
解决MybatisPlus updateById更新数据时将没传的数据也更新成了null
首先,MybatisPlus在调用自带的更新接口updateById时,如果没加任何配置,默认是不会将前端没传的数据也更新成null的。即MyBatisPlus不会更新传入实体中为null的字段,只会更新设置了不为null的值。 如果发现没传的也更新成null了的话…...
OpenWRT 和 Padavan 路由器配置网络打印机 实现远程打印
本文首发于只抄博客,欢迎点击原文链接了解更多内容。 前言 之前有给大家介绍过 Armbian 安装 CUPS 作为打印服务器,像是 N1 盒子、玩客云,甚至是随身 WiFi 都可以通过 CUPS 来进行打印。但是有些朋友不想专门为打印机添置一个设备࿰…...
R语言机器学习教程大纲
文章目录 介绍机器学习算法监督学习Supervised Learning分类Classification回归Regression 无监督学习 Unsupervised Learning聚类 Clustering降纬 Dimensionality Reduction相关Association 强化学习Reinforcement Learning模型自由 Model-Free Methods模型驱动 Model-Based M…...
java如何部署web后端服务
java如何部署web后端服务 简单记录一下,方便后续使用。 部署流程 1.web打包 2.关掉需要升级的运行中的服务 /microservice/hedgingcustomer-0.0.1-SNAPSHOT/conf/bin/ 执行脚本 sh shutdown.sh 3.解压文件 返回到/microservice 将升级包上传到该路径&#x…...
第八课 Vue中的v-bind指令
Vue中的v-bind指令 v-bind用于属性绑定,使得属性可以动态修改 v-bind动态修改class 动态修改的class名来源于data对象,而非手动给定 基础示例 <style>div{width: 100px;height: 100px;border: 3px solid #000;}.bg {background: red;}</sty…...
基于STM32的智能电能表设计
引言 本项目设计了一个基于STM32的智能电能表系统,能够实时测量家用电器的电压、电流、功率和电能消耗。该系统集成了电压电流传感器、显示屏、通信模块等,能够实现电能测量、数据显示、数据存储和远程传输功能,适用于家庭、工业等场景的电能…...
开启学习与探索之旅,自闭症学校全托为孩子打造温馨成长环境
原文指路:http://www.zibizhengwang.com/page33.html 在广州这座繁华都市的一隅,有一所特别的学校——星贝育园自闭症儿童寄宿制学校,它如同一座灯塔,照亮了自闭症儿童的学习与成长之路。在这里,每一个孩子都被视为独…...
多线程编程简单例题(3个线程) Linux环境 C语言实现
问题:编写程序完成如下功能:程序创建2个线程,然后: 1> 主线程先打印“I am main thread”,然后睡眠2秒后,打印"main thread wake up",主线程退出 2> 第一个新线程先打印“…...
UG NX12.0建模入门笔记:1.2 鼠标的基本操作
文章目录 前言:鼠标的操作1.鼠标左键:单击—>单选;长按并滑动—>框选。2.鼠标右键:在不同的地方单击弹出不同的菜单。3.鼠标中键:滚动中键—>放大缩小【镜头拉近拉远】。4.鼠标中键:摁住鼠标中键&…...
NVME盘未格式化导致Ubuntu20.04启动慢
背景 最近公司一款产品转产,工厂组装好后,用我提供的系统镜像烧录,系统起来后发现Ubuntu20.04转圈了90秒才进入图形界面,这是不可接受的,公司老总要求当天必须解决。 定位 分析syslog 看不到系统启动时的日志&…...
VSCode创建插件HelloWorld找不到指令解决办法
按照网上的教程执行yo code并且生成成功 但是F5打开调试新窗口后,ctrl shift P,输入helloworld并没有指令提示 原因:当前电脑安装的VSCode版本过低,不支持当前插件的使用(因为自动生成的插件总是默认使用最新版VSC…...
第20场 小白入门赛本场比赛为「蓝桥·算法双周赛」第二十场分级赛——小白入门赛
1. 四个亲戚【算法赛】 问题描述 风流倜傥的贾宝玉,拥有四个如花似玉的亲戚:林黛玉、薛宝钗、元春和迎春。这日,他们组团出国旅游了。为了方便称呼,宝玉给她们取了英文昵称,分别为:Daiyu、Baochai、Yuanchun 和Yingchun。但是&a…...
论文研读 | End-to-End Object Detection with Transformers
DETR:端到端目标检测的创新 —— 作者 Nicolas Carion 等人 一、背景与挑战 目标检测是计算机视觉领域的一个核心任务,要求模型精确识别图像中的物体类别和位置。传统方法如 Faster R-CNN,因其区域建议网络等复杂结构,使得模型调…...
构建高效在线教育平台:Spring Boot的力量
1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理信息化在线教学平台的相关信息成为必然。开…...
C#Process进程的使用,以及对ProcessInfo中所有的参数详细记录
目录 一、Process 二、ProcessInfo 2.1 FileName 2.2 Arguments 2.3 WorkingDirectory 2.4 CreateNoWindow 2.5 UseShellExecute 2.6 RedirectStandardInput 2.7 RedirectStandardOutput 2.8 RedirectStandardError 2.9 WindowStyle 2.10 Verb 2.11 LoadUserProfil…...
STM32中的RAM和ROM分别是什么
RAM(Random Access Memory,随机存取存储器)和ROM(Read-Only Memory,只读存储器)是计算机系统中的两种常见存储器类型,它们各自有不同的功能和用途。 1. RAM(内存) 定义…...
Spring--1
spring是一个轻量级的,采用IOC与AOP编程思想的java后端开发框架,简化了企业级的应用开发。 Spring体系 数据访问层,Web层,配置中心,测试区 IOC 控制反转,将创建对象的控制权交由Spring框架,需…...
【Flutter】页面布局:流式布局(Wrap、Flow)
在移动应用开发中,布局是非常重要的一部分,尤其是当我们需要处理动态或自适应的内容时。Flutter 提供了几种布局方式来帮助开发者处理复杂的 UI 场景,其中 Wrap 和 Flow 是常用的流式布局组件。它们在处理多个子组件时表现优越,尤…...
Delphi数据字典TDictionary
在 Delphi 中,创建一个数据字典通常意味着使用一种结构来存储键值对。Delphi 没有内建的字典类型,但你可以使用 TStringList 从 Classes 单元作为一个简单的键值对存储,或者你可以使用更复杂的第三方容器,如 TDictionary 从 Gener…...
VsCode 如何自定义代码片段(Code Snippet)
前言 在现代前端开发中,提高工作效率是每个开发者的追求。Visual Studio Code(Vscode)作为一款强大的代码编辑器,提供了许多让开发者高效编程的功能,其中自定义代码片段(Code Snippet)便是一个…...
如何免费解锁百度网盘SVIP下载:Mac版终极加速指南
如何免费解锁百度网盘SVIP下载:Mac版终极加速指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘缓慢的下载速度而烦恼吗&a…...
C++ STL 容器选型实战:vector/list/map/unordered_map 性能对比与选型指南
一、前言:为什么容器选型是 C 工程的核心?在 C 后端开发、Qt 桌面应用、高性能服务器、嵌入式系统、游戏引擎、实时仿真、数据分析等几乎所有工业级项目中,STL 容器的选型直接决定程序性能、内存占用、可维护性与稳定性。很多开发者习惯随手写…...
SetDPI:Windows多显示器DPI缩放终极解决方案
SetDPI:Windows多显示器DPI缩放终极解决方案 【免费下载链接】SetDPI 项目地址: https://gitcode.com/gh_mirrors/se/SetDPI 关键词:Windows DPI缩放,多显示器显示设置,DPI精准控制,显示器缩放工具,…...
开源工具:多平台支持的网盘高效下载技术指南
开源工具:多平台支持的网盘高效下载技术指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 / 迅…...
MusePublic圣光艺苑入门必看:‘凝光成影’技术白皮书——光照建模原理简析
MusePublic圣光艺苑入门必看:‘凝光成影’技术白皮书——光照建模原理简析 “见微知著,凝光成影。在星空的旋律中,重塑大理石的尊严。” 1. 从画室到算法:光照建模的艺术与科学 当你站在一幅梵高的《星空》前,是否曾好…...
GitHub中文界面终极指南:告别英文恐惧,5分钟让GitHub说中文
GitHub中文界面终极指南:告别英文恐惧,5分钟让GitHub说中文 【免费下载链接】github-chinese GitHub 汉化插件,GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese 你…...
OpenClaw安全审计方案:Phi-3-mini-128k-instruct操作日志分析
OpenClaw安全审计方案:Phi-3-mini-128k-instruct操作日志分析 1. 为什么需要OpenClaw安全审计 去年夏天,我在用OpenClaw自动处理一批财务报表时,差点酿成大错。当时脚本在凌晨3点自动运行,由于模型错误理解了"删除临时文件…...
AI 模型推理框架对比 TensorRT vs ONNX
AI模型推理框架对比:TensorRT与ONNX的深度解析在人工智能技术飞速发展的今天,模型推理框架的选择直接影响着部署效率与性能表现。NVIDIA推出的TensorRT与微软主导的ONNX作为两大主流推理框架,各自拥有独特的优势与适用场景。本文将从多个维度…...
SwiftData中的级联删除关系
在开发iOS应用程序时,数据模型的设计和管理至关重要。SwiftData是Apple在WWDC 2023上推出的新框架,旨在简化数据模型的创建和操作。今天,我们来探讨一下如何在SwiftData中实现级联删除关系。 什么是级联删除? 级联删除是一种数据库关系模型中的操作规则,当一个主记录被删…...
飞书机器人集成实战:OpenClaw+Phi-3-vision-128k-instruct打造智能问答助手
飞书机器人集成实战:OpenClawPhi-3-vision-128k-instruct打造智能问答助手 1. 为什么选择这个技术组合? 上周我接到一个产品经理的需求——希望能通过飞书直接发送产品截图,自动获得功能分析报告。传统方案需要开发整套服务端逻辑ÿ…...
