您好,登錄后才能下訂單哦!
本篇文章為大家展示了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è)資訊頻道。
免責(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)容。