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

需求11——解决字段无法清空的两个小bug

 

目录

背景

第一个小bug——问题阐述

第一个小bug——解决方案

第二个小bug——问题阐述

第二个小bug——解决方案

总结


背景

已经写了一个上午的文章了,写完这篇就可以去吃饭了。这也是这几个月的我写的最后一个小bug文章,把这篇文章写完就搞定了。

第一个小bug——问题阐述

具体情况是这样的:当用户在界面上清空“知会干系人”字段后,点击保存,系统并没有实际清空该字段。类似地,当用户清空“设备名称”字段后,保存操作也没有生效,提交后发现该字段依然保留了之前的内容。

因此,我们的目标是确保在用户清空“知会干系人”和“设备名称”字段后,保存操作能够正确生效,真正实现字段的清空。

第一个小bug——解决方案

我们先来研究一下“知会干系人”无法清空的问题:首先找到更新“知会干系人”的接口,并查看其更新逻辑。

此时,我们再次检查系统是否能够清空字段,结果发现可以成功清空。

这个小问题已经解决了。

第二个小bug——问题阐述

接下来,我们来看下一个小问题。

然后我重新查看了一下作业标准,发现它并没有更新。

第二个小bug——解决方案

这时,我们应该检查一下后端的 PUT 接口,看看工作内容及标准是否已经更新到数据库中。

可以看到,PUT 接口的负载是没有问题的。因为设备名称是根据 deviceId 来查询的,按理说我把设备名称清空后,deviceId 应该为 null。从负载上看,确实如此。然而,当我们查看数据库时,发现数据库并没有更新。这意味着 PUT 接口可能存在问题。

我们进入这个接口,查看它是如何将信息更新到数据库中的。

也就是说,这个接口的更新操作使用的是 saveOrUpdateBatch 方法。然而,在使用 MyBatis-Plus 生成的 saveOrUpdate 方法时,有些字段需要更新为空值。但 MyBatis-Plus 默认的策略是 NOT_NULL,即如果字段为空,则不会更新该字段。

这就是为什么数据库中的 deviceId 无法更新为 null,因为在更新时 deviceId 为 null,这会导致 saveOrUpdate 方法忽略该字段的更新。

然后我上网查了一下如何让这个字段更新为 null,结果发现可以这样做:在 deviceId 字段上使用 @TableField 注解,并设置 updateStrategy 属性为 FieldStrategy.IGNORED

然后再去系统上测试一下看看效果,发现这个小 bug 已经被解决了,数据库中的 deviceId 字段也已经可以被更新为 null 了。

总结

这两个小 bug 虽然都是无法清空,但它们无法清空的原因并不相同。

  1. 知会干系人无法清空

    • 原因:tshList[] 这个知会干系人数组没有值时,就不会执行更新知会干系人的操作。
  2. 设备名称无法被清空

    • 原因:在 MyBatis-Plus 中,如果使用了 saveOrUpdate 方法进行更新时,假如你想把某个字段更新为 null 是不可以的。该方法会自动忽略这种更新,只有非空值才会被更新。

相关文章:

需求11——解决字段无法清空的两个小bug

目录 背景 第一个小bug——问题阐述 第一个小bug——解决方案 第二个小bug——问题阐述 第二个小bug——解决方案 总结 背景 已经写了一个上午的文章了,写完这篇就可以去吃饭了。这也是这几个月的我写的最后一个小bug文章,把这篇文章写完就搞定了…...

mysql学习教程,从入门到精通,SQL 创建索引(CREATE INDEX 语句)(35)

1、SQL 创建索引(CREATE INDEX 语句) 在SQL中,创建索引(CREATE INDEX)是一种用于提高数据库查询性能的方法。索引类似于书的目录,通过它可以更快地定位到表中的特定行。以下是一个创建索引的示例,以及对其各部分的解释…...

Pikachu-Cross-Site Scripting-DOM型xss_x

查看代码&#xff0c;输入的内容&#xff0c;通过get请求方式&#xff0c;用text 参数带过去&#xff1b; 获取text内容&#xff0c;赋值给xss 然后拼接到 dom 里&#xff1b;构造payload的关键语句&#xff1a; <a href"xss">就让往事都随风,都随风吧</a&…...

Pikachu-Cross-Site Scripting-xss之htmlspecialchars

首先输入各种字符 查看页面元素&#xff0c;可以看到这里对一些符号做了转换&#xff0c;但是 单引号等几个符号没处理&#xff1b; 从代码上看&#xff1b;使用单引号做闭合&#xff1b; 构造payload a onclickalert(11) 提交&#xff0c;得到xss攻击...

CSS基础中padding详解

文章目录 CSS基础中padding详解一、引言二、Padding基础1、Padding属性1.1、Padding的四个方向 2、Padding的值类型3、代码示例 三、Padding简写方法1、简写顺序2、简写规则3、代码示例 四、Padding对元素大小的影响1、解决方案1.1、Box-sizing属性1.2、计算实际宽度 五、总结 …...

OpenGL笔记十九之相机系统

OpenGL笔记十九之相机系统 —— 2024-10-02 晚上 bilibili赵新政老师的教程看后笔记 code review! 文章目录 OpenGL笔记十九之相机系统1.运行1.1.游戏相机1.2.轨迹球相机 2.游戏相机与轨迹球相机切换3.博主笔记本要运行需要更改的文件更改1:28_OpenGL_CameraSystem/applicat…...

P-Tuning v2:一种普遍有效的提示调整方法

人工智能咨询培训老师叶梓 转载标明出处 预训练语言模型通过微调&#xff08;fine-tuning&#xff09;来适应特定任务虽然效果显著&#xff0c;但存在训练成本高、参数存储量大等问题。为了解决这些问题&#xff0c;清华大学的研究者们提出了一种名为P-Tuning v2的提示调整&am…...

微信小程序启动不起来,报错凡是以~/包名/*.js路径的文件,都找不到,试过网上一切方法,最终居然这么解决的,【避坑】命运的齿轮开始转动

app.json "resolveAlias": {"~/*": "/*"},文件代码也没有问题&#xff0c;网上的方法试过来了&#xff0c;大模型AI也问过遍&#xff0c;熬夜到凌晨2点半&#xff0c;最不可思议的是居然是因为微信开发者工具版本的问题&#xff0c;我真的是笑死…...

C#串口温度读取

背景&#xff1a;每天学点&#xff0c;坚持 要安装好虚拟串口和modbus poll&#xff0c;方便调试&#xff08;相关资源在文末&#xff0c;也可以私信找我要&#xff09; 传感器部分使用的是达林科技的DL11B-MC-D1&#xff0c;当时42软妹币买的&#xff08;官网上面有这个传感…...

2.5 Spring Boot整合Spring MVC框架

今天&#xff0c;我将向大家介绍如何在Spring Boot中整合Spring MVC框架&#xff0c;并展示如何创建和测试控制层&#xff08;Controller&#xff09;。 首先&#xff0c;让我们简要回顾一下Spring MVC。Spring MVC是一个基于Servlet的MVC框架&#xff0c;它简单、侵入性小&am…...

Java 归并排序

归并排序&#xff08;Merge Sort&#xff09;是一种基于分治法的排序算法。它将一个大数组分成两个较小的子数组&#xff0c;分别对每个子数组进行排序&#xff0c;然后再将这两个已排序的子数组合并成一个完整的已排序数组。归并排序的时间复杂度为 O(n log n)&#xff0c;其中…...

20241008深度学习动手篇

文章目录 1.如何写一个神经网络进行训练?1.1创建一个子类,搭建你需要的神经网络结构1.2 加载数据集1.3 自定义一些指标评估函数1.4训练1.5 结果展示 2.参考文献 1.如何写一个神经网络进行训练? 1.1创建一个子类,搭建你需要的神经网络结构 # File: 241008LeNet.py # Author:…...

对序列化反序列化在项目中的使用优化

文章目录 序列化是什么&#xff1f;常见的序列化协议使用序列化反序列化序列化List反序列化List 查看源码&#xff0c;分析不足进行改善 序列化是什么&#xff1f; 如果我们需要持久化 Java 对象比如将 Java 对象保存在文件中&#xff0c;或者在网络传输 Java 对象&#xff0c…...

查看 git log的过程中看到 :说明日志输出可能超出屏幕大小,系统进入了分页模式

在命令行提示符中&#xff0c;通常 : 表示系统等待进一步的输入。如果你在查看 git log 的过程中看到 :&#xff0c;说明日志输出可能超出屏幕大小&#xff0c;系统进入了分页模式&#xff0c;默认使用 less 命令查看内容。 此时你可以&#xff1a; 按 q 退出日志查看。按 En…...

Linux--信号量详解

目录 一、信号量 1、信号量相关函数 2、多线程环形队列生产消费模型 3、实现代码 信号量是将整体的资源分割成多份使用 信号量本质是对资源的预定机制 一、信号量 1、信号量相关函数 创建信号量: sem_init: int sem_init(sem_t *sem, int pshared, unsigned int value); …...

【重学 MySQL】五十一、更新和删除数据

【重学 MySQL】五十一、更新和删除数据 更新数据删除数据注意事项 在MySQL中&#xff0c;更新和删除数据是数据库管理的基本操作。 更新数据 为了更新&#xff08;修改&#xff09;表中的数据&#xff0c;可使用UPDATE语句。UPDATE语句的基本语法如下&#xff1a; UPDATE ta…...

Web3与人工智能的交叉应用探索

随着数字技术的发展&#xff0c;Web3与人工智能&#xff08;AI&#xff09;之间的结合正逐渐成为一个重要的研究领域。Web3技术旨在实现更加去中心化和透明的互联网&#xff0c;而人工智能则在数据分析、自动化决策和增强人类能力方面展示了巨大的潜力。 1. 去中心化数据管理与…...

【springboot9736】基于springboot+vue的逍遥大药房管理系统

作者主页&#xff1a;Java码库 主营内容&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取源码 项目描述 伴随着全球信息化发展&#xff0c;行行业业都与计算机技…...

四.网络层(上)

目录 4.1网络层功能概述 4.2 SDN基本概念 4.3 路由算法与路由协议 4.3.1什么是路由协议&#xff1f; 4.3.2什么是路由算法&#xff1f; 4.3.3路由算法分类 (1)静态路由算法 (2)动态路由算法 ①全局性 OSPF协议与链路状态算法 ②分散性 RIP协议与距离向量算法 4.3.…...

Leecode热题100-56.合并区间

以数组 intervals 表示若干个区间的集合&#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间&#xff0c;并返回 一个不重叠的区间数组&#xff0c;该数组需恰好覆盖输入中的所有区间 。 示例 1&#xff1a; 输入&#xff1a;intervals [[1,3…...

CH582低功耗实战:从1.2mA到5uA,我是如何排查并优化BLE广播功耗的

CH582低功耗实战&#xff1a;从1.2mA到5uA的BLE广播功耗优化全记录 当你的蓝牙传感器在货架上静静等待唤醒时&#xff0c;每微安的电流都在偷走电池的生命。去年冬天&#xff0c;我们团队就遭遇了这样的噩梦——基于CH582开发的温湿度信标&#xff0c;标称续航6个月的产品在实际…...

告别显示器!用VNC Viewer远程玩转树莓派4B的完整配置指南

无显示器玩转树莓派4B&#xff1a;VNC远程配置全攻略 当你刚拿到树莓派4B时&#xff0c;第一反应可能是找显示器、键盘鼠标来配置它。但现实情况往往是&#xff1a;手边没有多余的显示设备&#xff0c;或者你希望将树莓派作为服务器长期运行&#xff0c;根本不需要连接显示器。…...

快速上手3DGS数字孪生开发:一份必做的技术动作盘点清单

一、行业核心技术科普&#xff1a;3DGS数字孪生开发的关键技术节点从零开始构建一个基于3D高斯泼溅&#xff08;3DGS&#xff09;的数字孪生应用&#xff0c;涉及多个关键技术节点。每个节点的执行质量&#xff0c;都直接影响最终应用的性能与用户体验。其域创新推出的LCC格式&…...

UE5新手也能搞定的Niagara特效:用模板10分钟做出一个会动的烟雾

UE5 Niagara特效速成&#xff1a;10分钟打造动态烟雾的极简指南 第一次打开Unreal Engine的Niagara特效系统时&#xff0c;我被密密麻麻的节点和参数吓退了三次。直到发现模板库里的"Simple Sprite Burst"&#xff0c;才意识到原来制作专业级特效可以如此简单——就像…...

2026届必备的五大降AI率神器推荐榜单

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 人工智能技术不断深入发展着&#xff0c;学术领域对于原创性以及学术诚信的要求愈发严格起来…...

Windows HEIC缩略图终极解决方案:3步解锁苹果照片完美预览

Windows HEIC缩略图终极解决方案&#xff1a;3步解锁苹果照片完美预览 【免费下载链接】windows-heic-thumbnails Enable Windows Explorer to display thumbnails for HEIC/HEIF files 项目地址: https://gitcode.com/gh_mirrors/wi/windows-heic-thumbnails 还在为iPh…...

War3地图制作入门:不用写代码,用触发器和变量也能做出有趣玩法

War3地图制作入门&#xff1a;用触发器和变量打造专属游戏玩法 魔兽争霸3&#xff08;War3&#xff09;地图编辑器是游戏史上最强大的玩家创作工具之一&#xff0c;即使没有任何编程基础&#xff0c;也能通过触发器和变量系统创造出令人惊叹的游戏玩法。本文将带你从零开始&…...

AI一键生成微信红包封面系统源码

内容目录一、详细介绍二、效果展示1.部分代码2.效果图展示三、学习资料下载一、详细介绍 AI微信红包封面生成器源码是一款开源的微信红包封面生成工具&#xff0c;由前腾讯微信后台开发工程师「idoubi」开发并开源。项目名为“AI Cover”&#xff0c;旨在利用人工智能技术为用…...

Head Activator ;pPPGGSKVILF

一、基础信息多肽名称&#xff1a;头部激活因子三字母序列&#xff1a;Pyr-Pro-Pro-Gly-Gly-Ser-Lys-Val-Ile-Leu-Phe单字母序列&#xff1a;pPPGGSKVILF氨基酸数量&#xff1a;11 aa分子式&#xff1a;C54H84N12O14分子量&#xff1a;1125.34结构特征&#xff1a;N 端 Pyr&…...

CircuitJS1:浏览器中的电子电路仿真神器完全指南

CircuitJS1&#xff1a;浏览器中的电子电路仿真神器完全指南 【免费下载链接】circuitjs1 Electronic Circuit Simulator in the Browser 项目地址: https://gitcode.com/gh_mirrors/ci/circuitjs1 想要学习电子电路却苦于没有实验设备&#xff1f;需要验证电路设计却不…...