MyBatis-Plus 字段为Null时不更新解决方案,MyBatis-Plus 更新空字段
2023-09-11 14:18:14 时间
================================
©Copyright 蕃薯耀 2022-06-25
https://www.cnblogs.com/fanshuyao/
一、问题描述
使用这两个方法,不会对实体中值为Null的属性(字段)进行更新。
this.updateById(entity); this.update(entity, updateWrapper);
二、解决方案
1、使用LambdaUpdateWrapper(推荐)
LambdaUpdateWrapper<BizFile> lambdaUpdateWrapper = new LambdaUpdateWrapper<>(); //过滤条件 lambdaUpdateWrapper.eq(BizFile::getId, bizFile.getId()); //下面为设置值 //由于parentId会为空,所以要使用LambdaUpdateWrapper lambdaUpdateWrapper.set(BizFile::getParentId, parentId); lambdaUpdateWrapper.set(BizFile::getPath, newDirPath); //更新 this.update(lambdaUpdateWrapper);
2、使用UpdateWrapper
和LambdaUpdateWrapper的区别,就是设置的字段写法不一样,下面是要使用数据库字段的,如果修改字段后,容易造成字段名称没有修改。
UpdateWrapper<BizFile> updateWrapper = new UpdateWrapper<BizFile>(); updateWrapper.eq("id", bizFile.getId()); updateWrapper.set("parentId", parentId); updateWrapper.set("path", newDirPath); this.update(updateWrapper);
3、在实体中使用@TableField注解
在字段上加上注解:@TableField(fill = FieldFill.UPDATE)
@ApiModelProperty("父ID") @TableField(fill = FieldFill.UPDATE) private Long parentId;
然后通过下面的方法更新
this.updateById(entity); this.update(entity, updateWrapper);
(时间宝贵,分享不易,捐赠回馈,^_^)
================================
©Copyright 蕃薯耀 2022-06-25
https://www.cnblogs.com/fanshuyao/
相关文章
- JavaWeb_(Mybatis框架)Mapper动态代理开发_三
- Mybatis+mysql动态分页查询数据案例——房屋信息的接口(IHouseDao)
- Spring Boot中使用MyBatis注解配置详解(1)
- mybatis generator(MyBatis的逆向工程)
- mybatis开始
- Mybatis传多个参数(三种解决方案)
- Spring Boot (七): Mybatis极简配置
- Java_myBatis_xml代理写法
- spring boot整合mybatis步骤
- Atitit mybatis业务流程配置化管理总结 目录 1. Mybatis1 2. 流程模型常见的bpm模式1 2.1. 活动task 流程,getway流程控制(分支跳转 循环等)1 3
- 【MyBatis笔记10】Mybatis中几个动态SQL标签和内置参数
- Spring多数据源分布式事务管理/springmvc+spring+atomikos[jta]+druid+mybatis
- MyBatis快速入门——第五章、maven整合Mybatis&Servlet_tomcat
- MyBatis快速入门——第四章、mybatis动态sql_foreach
- Mybatis练习(多条件查询)
- MyBatis:2
- 解决Mybatis-plus高版本不向后兼容的问题
- 关于mybatis框架的总结【转载】
- Intellij IDEA中Mybatis Mapper自动注入警告的6种解决方案
- Mybatis源码分析之(六)mybatis拦截器(Interceptor)的实现原理
- Mybatis源码分析之(五)mapper如何将数据库数据转换成java对象的
- Mybatis-Plus之逻辑删除