详解Mybatis-plus中更新date类型数据遇到的坑
作者:爱钓鱼的Java 发布时间:2022-08-17 21:43:14
标签:Mybatis-plus,更新,date类型
最近一年的项目都是在使用Mybatis-plus,感觉挺好用的,也没遇到很多问题,但是在最近项目上线之后,遇到了一些新的需要,在进行新版本开发的时候就开始遇到坑了,今天来说一下更新数据中有date类型数据的时候会出现的问题。
实体类部分字段如下:
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ProductPo implements Serializable {
/**
* 产品主键,自增
*/
private Long prdId;
/**
* 名称
*/
private String prdName;
/**
* 价格
*/
private Bigdecimal prdPrice;
/**
* 上市日期
*/
private LocalDate listingDate;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 修改时间
*/
private LocalDateTime updateTime;
}
如果在更新的时候,将上市日期(listingDate)由之前的“2020-07-16”更新为null:
ProductPo po = ProductPo.builder.prdId(request.getPrdId).listingDate(null).updateTime(now(3)).build;
更新语句分为两种,第一种:
Integer rows = prdMapper.update(po, Wrappers.<ProductPo>lambdaUpdate().eq(ProductPo::getPrdId, request.getPrdId()));
第二种:
Integer rows = prdMapper.updateById(po);
这个时候你会发现,上市日期(listingDate)并没有被更新为空;有可能是因为在更新的时候,mybatis-plus将date类型为空的时候过滤掉了。
解决方法一:在字段上面加标签,不进行空判断过滤
@TableField(strategy = FieldStrategy.IGNORED)
private LocalDate listingDate;
解决方法二:在yml配置文件中进行全局配置
#mybatis-plus mapper包扫描地址
mybatis-plus:
mapper-locations: classpath*:mapper/*/*.xml,classpath*:mapper/*.xml
config-location: classpath:/mybatis-config.xml
global-config:
db-config:
field-strategy: ignored
此处是对所有的操作都进行过滤,在官网上还有:insertStrategy,updateStrategy和selectStrategy,可以根据自己需要进行设置。
我个人还是选择了第一种解决方案,因为进行全局配置的时候,必须保证每次的传参都是全的,要不然会将数据置空或者没有将必填字段传值的时候会报错。
来源:https://blog.csdn.net/yuanwxcsdn/article/details/107375626
0
投稿
猜你喜欢
- 前言 短时间提升自己最快的手段就是背面试题,最近总结了Java常用的面试题,分享给大家,希望大家都能圆梦大厂,加油,我命由我不由天
- 前言我们在日常开发中,经常会用到一个系统需要链接多个数据库来实现业务的需求,比如多个系统之间数据调用、两个数据之间同步等等。今天给大家分享使
- DataBindings属性是很多控件都有的属性,作用有2方面。一方面是用于与数据库的数据进行绑定,进行数据显示。另一方面用于与控件或类的对
- 前言Guava是google公司开发的一款Java类库扩展工具包,内含了丰富的API,涵盖了集合、缓存、并发、I/O等多个方面。使用这些AP
- 本文实例为大家分享了Android本地实现搜索历史记录的具体代码,供大家参考,具体内容如下一.自定义搜索历史记录本地实现搜索历史记录有很多种
- 前言惰性计算(尽可能延迟表达式求值)是许多函数式编程语言的特性。惰性集合在需要时提供其元素,无需预先计算它们,这带来了一些好处。首先,您可以
- 系统: lc android4.4 在做前后摄像头录像的时候,发现会出现花屏的时候,但不是必现,可能会在某一次重启之后会出现,而且出现之后会
- 最近工作遇到一个需求,需要下载excel模板,编辑后上传解析存储到数据库。因此为了更好的理解公司框架,我就自己先用spring mvc实现了
- 本篇概览在检测人脸数量、位置、性别、口罩等场景时,可以考虑使用百度开放平台提供的web接口,一个web请求就能完成检测得到结果,本篇记录了从
- /// <summary> /// 遍历Co
- 简介MapStruct 是一个代码生成器(可以生成对象映射转换的代码),它基于约定优于配置的方法,极大地简化了 Java bean 类型之间
- 前面关于spring Boot的文章已经介绍了很多了,但是一直都没有涉及到数据库的操作问题,数据库操作当然也是我们在开发中无法回避的问题,那
- arthas能够更改日志的级别,下面是logger的用法查看logger信息,更新logger level查看所有logger信息logge
- 在spring的注解 @RequestMapping 之下可以直接获取 HttpServletRequest 来获得诸如request he
- 初次使用IDEA,创建一个maven工程,发现在目录结构中产生了两个不一样的东西——.iml文件和.idea文件夹。非常好奇,所以立刻上网查
- Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动。下面是我这几年做开发过程中自己用过的工具类
- 在style中如下面那样定义:<style name="mystyle"> <item name=&
- 本文实例讲述了Java解析Excel内容的方法。分享给大家供大家参考。具体实现方法如下:import java.io.File;
- ListBox控件的使用: 1)控件属性 Items SelectedItems SelectioModes 2)数据绑定 DataSour
- 本次内容主要介绍基于Ehcache 3.0来快速实现Spring Boot应用程序的数据缓存功能。在Spring Boot应用程序中,我们可