MybatisPlus中update()和updateById()怎么将字段更新为null(mybatisplus,update(),updateById(),开发技术)

时间:2024-05-05 08:55:55 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

    MybatisPlus%E4%B8%ADupdate%28%29%E5%92%8CupdateById%28%29%E6%80%8E%E4%B9%88%E5%B0%86%E5%AD%97%E6%AE%B5%E6%9B%B4%E6%96%B0%E4%B8%BAnull

用Mybatis-Plus的update()或者updateById()来更新数据时,无法将字段设置为null值(更新后数据还是原来的值)。

默认情况下,Mybatis-Plus在更新时会判断字段是否为null,如果是null,则不设值(不将这个字段拼接为SQL的SET语句)。

字段策略的源码:com.baomidou.mybatisplus.annotation.FieldStrategy

可以看到,FieldStrategy.DEFAULT:默认等于FieldStrategy.NOT_NULL,也就是:字段不为Null时才拼接SQL。

实际上,Mybatis-Plus在增删改查时默认对Null等情况都进行了判断。

源码里的注释已经很清楚了,本处不再赘述。源码位置:com.baomidou.mybatisplus.annotation.TableField

importjava.lang.annotation.*;

//其他代码

需求:根据用户id,设置userName(用户名),并将nickName(昵称)设置为null。

application.yml

field-strategy:0

注意

这是全局配置,会对所有的字段都忽略判断,如果一些字段不想要修改,但是传值的时候没有传递过来,就会被更新为null,可能会影响其他业务数据的正确性。

所以,尽量不要用此法。

方法

只在需要更新为null的字段上,设置忽略策略,如下:

更新的方法:

注意

不同的业务对字段的需求可能不一样,将字段指定为忽略判断(直接拼SQL)可能会影响其他业务。

本文:MybatisPlus中update()和updateById()怎么将字段更新为null的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:elementplus的自动导入和按需导入方式是什么下一篇:

10 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18