做整站优化,e福州电子公交卡,企业设计网站公司排行榜,wordpress基础模板目录
背景
第一个小bug——问题阐述
第一个小bug——解决方案
第二个小bug——问题阐述
第二个小bug——解决方案
总结 背景
已经写了一个上午的文章了#xff0c;写完这篇就可以去吃饭了。这也是这几个月的我写的最后一个小bug文章#xff0c;把这篇文章写完就搞定了…
目录
背景
第一个小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 虽然都是无法清空但它们无法清空的原因并不相同。 知会干系人无法清空 原因tshList[] 这个知会干系人数组没有值时就不会执行更新知会干系人的操作。 设备名称无法被清空 原因在 MyBatis-Plus 中如果使用了 saveOrUpdate 方法进行更新时假如你想把某个字段更新为 null 是不可以的。该方法会自动忽略这种更新只有非空值才会被更新。