当前位置: 首页 > news >正文

解决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 来进行打印。但是有些朋友不想专门为打印机添置一个设备&#xff0…...

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用于属性绑定&#xff0c;使得属性可以动态修改 v-bind动态修改class 动态修改的class名来源于data对象&#xff0c;而非手动给定 基础示例 <style>div{width: 100px;height: 100px;border: 3px solid #000;}.bg {background: red;}</sty…...

基于STM32的智能电能表设计

引言 本项目设计了一个基于STM32的智能电能表系统&#xff0c;能够实时测量家用电器的电压、电流、功率和电能消耗。该系统集成了电压电流传感器、显示屏、通信模块等&#xff0c;能够实现电能测量、数据显示、数据存储和远程传输功能&#xff0c;适用于家庭、工业等场景的电能…...

开启学习与探索之旅,自闭症学校全托为孩子打造温馨成长环境

原文指路&#xff1a;http://www.zibizhengwang.com/page33.html 在广州这座繁华都市的一隅&#xff0c;有一所特别的学校——星贝育园自闭症儿童寄宿制学校&#xff0c;它如同一座灯塔&#xff0c;照亮了自闭症儿童的学习与成长之路。在这里&#xff0c;每一个孩子都被视为独…...

多线程编程简单例题(3个线程) Linux环境 C语言实现

问题&#xff1a;编写程序完成如下功能&#xff1a;程序创建2个线程&#xff0c;然后&#xff1a; 1> 主线程先打印“I am main thread”&#xff0c;然后睡眠2秒后&#xff0c;打印"main thread wake up",主线程退出 2> 第一个新线程先打印“…...

UG NX12.0建模入门笔记:1.2 鼠标的基本操作

文章目录 前言&#xff1a;鼠标的操作1.鼠标左键&#xff1a;单击—>单选&#xff1b;长按并滑动—>框选。2.鼠标右键&#xff1a;在不同的地方单击弹出不同的菜单。3.鼠标中键&#xff1a;滚动中键—>放大缩小【镜头拉近拉远】。4.鼠标中键&#xff1a;摁住鼠标中键&…...

NVME盘未格式化导致Ubuntu20.04启动慢

背景 最近公司一款产品转产&#xff0c;工厂组装好后&#xff0c;用我提供的系统镜像烧录&#xff0c;系统起来后发现Ubuntu20.04转圈了90秒才进入图形界面&#xff0c;这是不可接受的&#xff0c;公司老总要求当天必须解决。 定位 分析syslog 看不到系统启动时的日志&…...

VSCode创建插件HelloWorld找不到指令解决办法

按照网上的教程执行yo code并且生成成功 但是F5打开调试新窗口后&#xff0c;ctrl shift P&#xff0c;输入helloworld并没有指令提示 原因&#xff1a;当前电脑安装的VSCode版本过低&#xff0c;不支持当前插件的使用&#xff08;因为自动生成的插件总是默认使用最新版VSC…...

第20场 小白入门赛本场比赛为「蓝桥·算法双周赛」第二十场分级赛——小白入门赛

1. 四个亲戚【算法赛】 问题描述 风流倜傥的贾宝玉&#xff0c;拥有四个如花似玉的亲戚:林黛玉、薛宝钗、元春和迎春。这日&#xff0c;他们组团出国旅游了。为了方便称呼&#xff0c;宝玉给她们取了英文昵称&#xff0c;分别为:Daiyu、Baochai、Yuanchun 和Yingchun。但是&a…...

论文研读 | End-to-End Object Detection with Transformers

DETR&#xff1a;端到端目标检测的创新 —— 作者 Nicolas Carion 等人 一、背景与挑战 目标检测是计算机视觉领域的一个核心任务&#xff0c;要求模型精确识别图像中的物体类别和位置。传统方法如 Faster R-CNN&#xff0c;因其区域建议网络等复杂结构&#xff0c;使得模型调…...

构建高效在线教育平台:Spring Boot的力量

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所&#xff0c;二十一世纪是信息的时代&#xff0c;所以信息的管理显得特别重要。因此&#xff0c;使用计算机来管理信息化在线教学平台的相关信息成为必然。开…...

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&#xff08;Random Access Memory&#xff0c;随机存取存储器&#xff09;和ROM&#xff08;Read-Only Memory&#xff0c;只读存储器&#xff09;是计算机系统中的两种常见存储器类型&#xff0c;它们各自有不同的功能和用途。 1. RAM&#xff08;内存&#xff09; 定义…...

Spring--1

spring是一个轻量级的&#xff0c;采用IOC与AOP编程思想的java后端开发框架&#xff0c;简化了企业级的应用开发。 Spring体系 数据访问层&#xff0c;Web层&#xff0c;配置中心&#xff0c;测试区 IOC 控制反转&#xff0c;将创建对象的控制权交由Spring框架&#xff0c;需…...

【Flutter】页面布局:流式布局(Wrap、Flow)

在移动应用开发中&#xff0c;布局是非常重要的一部分&#xff0c;尤其是当我们需要处理动态或自适应的内容时。Flutter 提供了几种布局方式来帮助开发者处理复杂的 UI 场景&#xff0c;其中 Wrap 和 Flow 是常用的流式布局组件。它们在处理多个子组件时表现优越&#xff0c;尤…...

Delphi数据字典TDictionary

在 Delphi 中&#xff0c;创建一个数据字典通常意味着使用一种结构来存储键值对。Delphi 没有内建的字典类型&#xff0c;但你可以使用 TStringList 从 Classes 单元作为一个简单的键值对存储&#xff0c;或者你可以使用更复杂的第三方容器&#xff0c;如 TDictionary 从 Gener…...

VsCode 如何自定义代码片段(Code Snippet)

前言 在现代前端开发中&#xff0c;提高工作效率是每个开发者的追求。Visual Studio Code&#xff08;Vscode&#xff09;作为一款强大的代码编辑器&#xff0c;提供了许多让开发者高效编程的功能&#xff0c;其中自定义代码片段&#xff08;Code Snippet&#xff09;便是一个…...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留&#xff0c;CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制&#xff08;CCA-Attention&#xff09;&#xff0c;…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具

作者&#xff1a;来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗&#xff1f;了解下一期 Elasticsearch Engineer 培训的时间吧&#xff01; Elasticsearch 拥有众多新功能&#xff0c;助你为自己…...

3.3.1_1 检错编码(奇偶校验码)

从这节课开始&#xff0c;我们会探讨数据链路层的差错控制功能&#xff0c;差错控制功能的主要目标是要发现并且解决一个帧内部的位错误&#xff0c;我们需要使用特殊的编码技术去发现帧内部的位错误&#xff0c;当我们发现位错误之后&#xff0c;通常来说有两种解决方案。第一…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验

系列回顾&#xff1a; 在上一篇中&#xff0c;我们成功地为应用集成了数据库&#xff0c;并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了&#xff01;但是&#xff0c;如果你仔细审视那些 API&#xff0c;会发现它们还很“粗糙”&#xff1a;有…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度

文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

【Go语言基础【12】】指针:声明、取地址、解引用

文章目录 零、概述&#xff1a;指针 vs. 引用&#xff08;类比其他语言&#xff09;一、指针基础概念二、指针声明与初始化三、指针操作符1. &&#xff1a;取地址&#xff08;拿到内存地址&#xff09;2. *&#xff1a;解引用&#xff08;拿到值&#xff09; 四、空指针&am…...