支持业务字段在编辑的时候可以清空值

Blade 未结 1 706
3564775286
3564775286 剑圣 2022-05-05 14:06

一、该问题的重现步骤是什么?

1.原默认配置不支持在编辑时清空字段置,为了支持业务字段在编辑的时候可以清空值,将mybatis-plus的update-strategy设置为ignore

2. 同时,null我们也不需要自动转空值,所以jackson.null-to-empty我们也设置为了false(确实需要的地方我们会自行处理)


二、你期待的结果是什么?实际看到的又是什么?

实际结果:update-strategy设置为ignore后,基础功能(比如用户设置头像)会有问题,会将页面本身没有字段置为空,原因:基础功能都是基于update-strategy为not_null策略实现的,实际这种方式有点偷懒的嫌疑,不应该时把原数据查出来,然后把页面上有的字段单独set进去吗?

期望结果:既能支持业务字段在编辑的时候可以清空值,又不影响基础功能


三、你正在使用的是什么产品,什么版本?在什么操作系统上?

BladeX-Boot,2.9.0.RELEASE,Windows10&Linux


四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。

1条回答
  • 2022-05-05 14:38

    改成ignore,意味着所有的字段都需要手动处理,前端提交的时候,返回数据是什么,后端就会更新成什么。如果返回了null,那么数据库字段就会被更新为null。

    如果再关闭null-to-empty,没有默认的null值转换,如果前端不做处理,那么最后更新就会全局更新了。

    如果表数据量非常大,ignore又是全局更新,那么效率会降低很多。

    所以根据你的情况有两个建议:

    一、这个是比较推荐的,后端用注解修饰特定的字段,来达到不同场景要求

    二、修改null-to-empty配置的序列化逻辑,把数字类型和日期类型的空值转换自行定义

    image.png

    image.png

    0 讨论(0)
提交回复