解决mybatisPlus null 值更新的问题
发现mybatisPlus会更新对象属性为null的值,
与field-strategy配置有关
mybatis-plus: global-config: db-config: field-strategy: not_null
在3.1.0版本中,其选择的值有
public enum FieldStrategy { IGNORED, NOT_NULL, NOT_EMPTY, DEFAULT; private FieldStrategy() { } }
我刚开始选择的是ignored,所以null值会更新,像这样:
改成not_null,就是这样了
官网解释:
该策略约定了如何产出注入的sql,涉及insert,update以及wrapper内部的entity属性生成的 where 条件
官方链接: https://mp.baomidou.com/config/#fieldstrategy
补充:mybatis-plus更新的时候忽略null值判断
一般会更新操作都会判断null值,为null就不更新对应的字段。
但是有时候需要把特定的字段更新为null,使用mybatis-plus时可以在实体类特定属性上面加注解@TableField(strategy=FieldStrategy.IGNORED),就会忽略null值判断,将null更新进数据库。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。
相关文章
Java中的List接口实现类LinkList和ArrayList详解
这篇文章主要介绍了Java中的List接口实现类LinkList和ArrayList详解,List接口继承自Collection接口,是单列集合的一个重要分支,实现了List接口的对象称为List集合,在List集合中允许出现重复的元素,所有的元素是以一种线性方式进行存储的,需要的朋友可以参考下2024-01-01springboot学习之Thymeleaf模板引擎及原理介绍
本文主要介绍一下SpringBoot给我们推荐的Thymeleaf模板引擎,这模板引擎呢,是一个高级语言的模板引擎,他的这个语法更简单而且功能更强大,对springboot Thymeleaf模板引擎相关知识感兴趣的朋友一起看看吧2022-02-02Java中的字节流InputStream和OutputStream详解
这篇文章主要介绍了Java中的字节流InputStream和OutputStream详解,继承自InputStream的流都是用于向程序中输入数据,且数据的单位为字节8bit,我们看到的具体的某一些管道,凡是以InputStream结尾的管道,都是以字节的形式向我们的程序输入数据,需要的朋友可以参考下2023-10-10
最新评论