欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解Mybatis-plus中更新date類型數(shù)據(jù)遇到的坑

 更新時間:2020年10月15日 09:59:48   作者:愛釣魚的Java  
這篇文章主要介紹了詳解Mybatis-plus中更新date類型數(shù)據(jù)遇到的坑,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

最近一年的項目都是在使用Mybatis-plus,感覺挺好用的,也沒遇到很多問題,但是在最近項目上線之后,遇到了一些新的需要,在進(jìn)行新版本開發(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類型為空的時候過濾掉了。

解決方法一:在字段上面加標(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è)置。
我個人還是選擇了第一種解決方案,因為進(jìn)行全局配置的時候,必須保證每次的傳參都是全的,要不然會將數(shù)據(jù)置空或者沒有將必填字段傳值的時候會報錯。

到此這篇關(guān)于詳解Mybatis-plus中更新date類型數(shù)據(jù)遇到的坑的文章就介紹到這了,更多相關(guān)Mybatis-plus更新date類型內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論