【Mybatis-Plus】mybatisplus更新时,实体字段为空,数据库不更新的解决方案

简介: 【Mybatis-Plus】mybatisplus更新时,实体字段为空,数据库不更新的解决方案

一、背景描述

项目技术栈:jdk (1.8) + spring boot (2.1.5) + mybatis-plus (3.3.1)

数据库: MySQL

字段类型:varchar 和 int

从前端传过来的数据实体字段, convertType 和 step 设为null时,使用mybatis-plus 的 updateById方法往数据库中更新时,这两个字段不更新,数据不为空可以插入。

二、问题原因

mybatis-plus在更新的时候做了null判断,默认不更新为null的传参。

三、解决方案

有两种方法都可以解决这个问题,都是加注解

3.1 @TableField(fill = FieldFill.UPDATE)

在需要更新的字段上加上 mybatis plus 的注解 @TableField(fill = FieldFill.UPDATE) ,它的作用是字段填充时要更新此字段

    @ApiModelProperty("转换值")
    @TableField(fill = FieldFill.UPDATE)
    private String convertValue;
    @ApiModelProperty("步长")
    @TableField(fill = FieldFill.UPDATE)
    private Integer step;

3.2 @TableField(updateStrategy = FieldStrategy.IGNORED)

在实体类对应字段上添加上这个注解,它的作用是忽略NULL值的判断

    @ApiModelProperty("转换值")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String convertValue;
    @ApiModelProperty("步长")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Integer step;

完结!


相关文章
|
21天前
|
SQL Java 数据库连接
【mybatis】第一篇,Springboot中使用插件PageHelper不生效解决方案
【mybatis】第一篇,Springboot中使用插件PageHelper不生效解决方案
|
21天前
|
SQL XML Java
【mybatis】第二篇:@Select注解中加入字段判断
【mybatis】第二篇:@Select注解中加入字段判断
|
27天前
|
存储 关系型数据库 MySQL
MySQL数据库性能大揭秘:表设计优化的高效策略(优化数据类型、增加冗余字段、拆分表以及使用非空约束)
MySQL数据库性能大揭秘:表设计优化的高效策略(优化数据类型、增加冗余字段、拆分表以及使用非空约束)
|
1天前
|
分布式计算 关系型数据库 大数据
MaxCompute产品使用合集之怎么才可以将 PostgreSQL 中的 geometry 空间类型字段同步到 MaxCompute 或另一个 PostgreSQL 数据库
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
11天前
|
SQL 关系型数据库 MySQL
mysql 数据库查询 查询字段用逗号隔开 关联另一个表并显示
mysql 数据库查询 查询字段用逗号隔开 关联另一个表并显示
19 2
|
20天前
|
小程序 数据库
【微信小程序7】云数据库:利用Field获取指定字段的值。
【微信小程序7】云数据库:利用Field获取指定字段的值。
26 2
|
20天前
|
小程序 前端开发 数据库
【微信小程序2】云数据库:利用addField在返回记录中增加新字段
【微信小程序2】云数据库:利用addField在返回记录中增加新字段
27 4
|
21天前
|
存储 关系型数据库 MySQL
【mybatis-plus】Springboot+AOP+自定义注解实现多数据源操作(数据源信息存在数据库)
【mybatis-plus】Springboot+AOP+自定义注解实现多数据源操作(数据源信息存在数据库)
|
22天前
|
XML Java 数据库连接
MyBatis返回Map时值为null的字段会丢失
MyBatis返回Map时值为null的字段会丢失
|
2月前
|
SQL Java 数据库连接
挺详细的spring+springmvc+mybatis配置整合|含源代码
挺详细的spring+springmvc+mybatis配置整合|含源代码
45 1