詳解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ù)置空或者沒有將必填字段傳值的時候會報(bào)錯。
到此這篇關(guān)于詳解Mybatis-plus中更新date類型數(shù)據(jù)遇到的坑的文章就介紹到這了,更多相關(guān)Mybatis-plus更新date類型內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring框架中Bean的三種配置和實(shí)例化方法總結(jié)
在Spring框架中,Bean的配置和實(shí)例化是很重要的基礎(chǔ)內(nèi)容,掌握各種配置方式,才能靈活管理Bean對象,本文將全面介紹Bean的別名配置、作用范圍配置,以及構(gòu)造器實(shí)例化、工廠實(shí)例化等方式2023-10-10java 刪除文件夾中的所有內(nèi)容而不刪除文件夾本身的實(shí)例
下面小編就為大家?guī)硪黄猨ava 刪除文件夾中的所有內(nèi)容而不刪除文件夾本身的實(shí)例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-12-12java如何實(shí)現(xiàn)post請求webservice服務(wù)端
這篇文章主要介紹了java如何實(shí)現(xiàn)post請求webservice服務(wù)端,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03Java實(shí)戰(zhàn)之圖書管理系統(tǒng)的實(shí)現(xiàn)
這篇文章主要介紹了如何利用Java語言編寫一個圖書管理系統(tǒng),文中采用的技術(shù)有Springboot、SpringMVC、MyBatis、ThymeLeaf 等,需要的可以參考一下2022-03-03SpringIOC容器Bean的作用域及生命周期實(shí)例
這篇文章主要為大家介紹了SpringIOC容器Bean的作用域及生命周期實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05spring?Cloud微服務(wù)阿里開源TTL身份信息的線程間復(fù)用
這篇文章主要為大家介紹了spring?Cloud微服務(wù)中使用阿里開源TTL身份信息的線程間復(fù)用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01關(guān)于Cannot?resolve?com.microsoft.sqlserver:sqljdbc4:4.0報(bào)錯問題解
這篇文章主要給大家介紹了關(guān)于Cannot?resolve?com.microsoft.sqlserver:sqljdbc4:4.0報(bào)錯問題的解決辦法,這個是在pom文件中添加依賴出現(xiàn)報(bào)錯問題,需要的朋友可以參考下2024-02-02java項(xiàng)目怎么集成stable diffusion圖文生成算法
在開發(fā)Java項(xiàng)目過程中,我們經(jīng)常需要使用消息傳遞來實(shí)現(xiàn)不同組件之間的通信,Stable Diffusion是一種基于消息傳遞的實(shí)時通信解決方案,使用Java調(diào)用外部服務(wù)(如Python腳本或API服務(wù)),這些服務(wù)運(yùn)行Stable Diffusion模型,本文將介紹如何將Stable Diffusion集成到Java項(xiàng)目2024-07-07基于Java實(shí)現(xiàn)的Base64加密、解密原理代碼
這篇文章主要介紹了基于Java實(shí)現(xiàn)的Base64加密、解密原理代碼,需要的朋友可以參考下2014-07-07