詳解Mybatis-plus中更新date類型數(shù)據(jù)遇到的坑
最近一年的項(xiàng)目都是在使用Mybatis-plus,感覺挺好用的,也沒遇到很多問題,但是在最近項(xiàng)目上線之后,遇到了一些新的需要,在進(jìn)行新版本開發(fā)的時候就開始遇到坑了,今天來說一下更新數(shù)據(jù)中有date類型數(shù)據(jù)的時候會出現(xiàn)的問題。
實(shí)體類部分字段如下:
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ProductPo implements Serializable {
/**
* 產(chǎn)品主鍵,自增
*/
private Long prdId;
/**
* 名稱
*/
private String prdName;
/**
* 價格
*/
private Bigdecimal prdPrice;
/**
* 上市日期
*/
private LocalDate listingDate;
/**
* 創(chuàng)建時間
*/
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);
這個時候你會發(fā)現(xiàn),上市日期(listingDate)并沒有被更新為空;有可能是因?yàn)樵诟碌臅r候,mybatis-plus將date類型為空的時候過濾掉了。
解決方法一:在字段上面加標(biāo)簽,不進(jìn)行空判斷過濾
@TableField(strategy = FieldStrategy.IGNORED) private LocalDate listingDate;
解決方法二:在yml配置文件中進(jìn)行全局配置
#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
此處是對所有的操作都進(jìn)行過濾,在官網(wǎng)上還有:insertStrategy,updateStrategy和selectStrategy,可以根據(jù)自己需要進(jìn)行設(shè)置。
我個人還是選擇了第一種解決方案,因?yàn)檫M(jìn)行全局配置的時候,必須保證每次的傳參都是全的,要不然會將數(shù)據(jù)置空或者沒有將必填字段傳值的時候會報錯。
到此這篇關(guān)于詳解Mybatis-plus中更新date類型數(shù)據(jù)遇到的坑的文章就介紹到這了,更多相關(guān)Mybatis-plus更新date類型內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
用Java設(shè)計實(shí)現(xiàn)多實(shí)例多庫查詢方式
這篇文章主要介紹了用Java設(shè)計實(shí)現(xiàn)多實(shí)例多庫查詢方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03
SpringBoot監(jiān)聽?wèi)?yīng)用程序啟動的生命周期事件的四種方法
在 Spring Boot 中,監(jiān)聽?wèi)?yīng)用程序啟動的生命周期事件有多種方法,本文給大家就介紹了四種監(jiān)聽?wèi)?yīng)用程序啟動的生命周期事件的方法,并通過代碼示例講解的非常詳細(xì),具有一定的參考價值,需要的朋友可以參考下2024-07-07
Java詳解如何將excel數(shù)據(jù)轉(zhuǎn)為樹形
在平常的辦公工作中,excel數(shù)據(jù)的操作是最常見的需求,今天就來看一下通過Java如何來實(shí)現(xiàn)將excel數(shù)據(jù)轉(zhuǎn)為樹形,感興趣的朋友可以了解下2022-08-08
Java實(shí)戰(zhàn)之兼職平臺系統(tǒng)的實(shí)現(xiàn)
這篇文章主要介紹了如何利用Java編寫一個兼職平臺系統(tǒng),采用到的技術(shù)有Springboot、SpringMVC、MyBatis、ThymeLeaf等,感興趣的小伙伴可以了解一下2022-03-03
Java實(shí)現(xiàn)SMS短信通發(fā)送手機(jī)驗(yàn)證碼案例講解
這篇文章主要介紹了Java實(shí)現(xiàn)SMS短信通發(fā)送手機(jī)驗(yàn)證碼案例講解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08

