溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Mybatis-plus中更新date類型數(shù)據(jù)時(shí)常見(jiàn)的問(wèn)題

發(fā)布時(shí)間:2020-10-27 20:59:32 來(lái)源:億速云 閱讀:3447 作者:Leah 欄目:開(kāi)發(fā)技術(shù)

本篇文章為大家展示了Mybatis-plus中更新date類型數(shù)據(jù)時(shí)常見(jiàn)的問(wèn)題,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

實(shí)體類部分字段如下:

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ProductPo implements Serializable {
 /**
   * 產(chǎn)品主鍵,自增
   */
  private Long prdId;
  /**
   * 名稱
   */
  private String prdName;
  /**
   * 價(jià)格
   */
  private Bigdecimal prdPrice;
  /**
   * 上市日期
   */
  private LocalDate listingDate;
  /**
   * 創(chuàng)建時(shí)間
   */
  private LocalDateTime createTime;
  /**
   * 修改時(shí)間
   */
  private LocalDateTime updateTime;
}

如果在更新的時(shí)候,將上市日期(listingDate)由之前的“2020-07-16”更新為null:

ProductPo po = ProductPo.builder.prdId(request.getPrdId).listingDate(null).updateTime(now(3)).build;

更新語(yǔ)句分為兩種,第一種:

Integer rows = prdMapper.update(po, Wrappers.<ProductPo>lambdaUpdate().eq(ProductPo::getPrdId, request.getPrdId()));

第二種:

Integer rows = prdMapper.updateById(po);

這個(gè)時(shí)候你會(huì)發(fā)現(xiàn),上市日期(listingDate)并沒(méi)有被更新為空;有可能是因?yàn)樵诟碌臅r(shí)候,mybatis-plus將date類型為空的時(shí)候過(guò)濾掉了。

解決方法一:在字段上面加標(biāo)簽,不進(jìn)行空判斷過(guò)濾

@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

此處是對(duì)所有的操作都進(jìn)行過(guò)濾,在官網(wǎng)上還有:insertStrategy,updateStrategy和selectStrategy,可以根據(jù)自己需要進(jìn)行設(shè)置。
我個(gè)人還是選擇了第一種解決方案,因?yàn)檫M(jìn)行全局配置的時(shí)候,必須保證每次的傳參都是全的,要不然會(huì)將數(shù)據(jù)置空或者沒(méi)有將必填字段傳值的時(shí)候會(huì)報(bào)錯(cuò)。

上述內(nèi)容就是Mybatis-plus中更新date類型數(shù)據(jù)時(shí)常見(jiàn)的問(wèn)題,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI