詳解Mybatis-plus中更新date類型數(shù)據(jù)遇到的坑
最近一年的項目都是在使用Mybatis-plus,感覺挺好用的,也沒遇到很多問題,但是在最近項目上線之后,遇到了一些新的需要,在進行新版本開發(fā)的時候就開始遇到坑了,今天來說一下更新數(shù)據(jù)中有date類型數(shù)據(jù)的時候會出現(xiàn)的問題。
實體類部分字段如下:
@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)并沒有被更新為空;有可能是因為在更新的時候,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
此處是對所有的操作都進行過濾,在官網(wǎng)上還有:insertStrategy,updateStrategy和selectStrategy,可以根據(jù)自己需要進行設置。
我個人還是選擇了第一種解決方案,因為進行全局配置的時候,必須保證每次的傳參都是全的,要不然會將數(shù)據(jù)置空或者沒有將必填字段傳值的時候會報錯。
到此這篇關于詳解Mybatis-plus中更新date類型數(shù)據(jù)遇到的坑的文章就介紹到這了,更多相關Mybatis-plus更新date類型內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
java如何實現(xiàn)post請求webservice服務端
這篇文章主要介紹了java如何實現(xiàn)post請求webservice服務端,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03Java實戰(zhàn)之圖書管理系統(tǒng)的實現(xiàn)
這篇文章主要介紹了如何利用Java語言編寫一個圖書管理系統(tǒng),文中采用的技術有Springboot、SpringMVC、MyBatis、ThymeLeaf 等,需要的可以參考一下2022-03-03spring?Cloud微服務阿里開源TTL身份信息的線程間復用
這篇文章主要為大家介紹了spring?Cloud微服務中使用阿里開源TTL身份信息的線程間復用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-01-01關于Cannot?resolve?com.microsoft.sqlserver:sqljdbc4:4.0報錯問題解
這篇文章主要給大家介紹了關于Cannot?resolve?com.microsoft.sqlserver:sqljdbc4:4.0報錯問題的解決辦法,這個是在pom文件中添加依賴出現(xiàn)報錯問題,需要的朋友可以參考下2024-02-02java項目怎么集成stable diffusion圖文生成算法
在開發(fā)Java項目過程中,我們經(jīng)常需要使用消息傳遞來實現(xiàn)不同組件之間的通信,Stable Diffusion是一種基于消息傳遞的實時通信解決方案,使用Java調用外部服務(如Python腳本或API服務),這些服務運行Stable Diffusion模型,本文將介紹如何將Stable Diffusion集成到Java項目2024-07-07基于Java實現(xiàn)的Base64加密、解密原理代碼
這篇文章主要介紹了基于Java實現(xiàn)的Base64加密、解密原理代碼,需要的朋友可以參考下2014-07-07