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

Mybatis-Plus更新時間字段不生效的解決

 更新時間:2024年09月22日 09:47:06   作者:Jerryean99  
在使用Mybatis-Plus時,可能會遇到updateTime字段不自動更新的問題,通過分析,原因在于selectById獲取舊數(shù)據(jù)后,如果字段已有值,更新操作不會自動填充更新時間,可以通過直接在實體中設(shè)置更新時間或在更新操作時指定時間來解決此問題

背景

Mybatis-Plus是在Mybatis的基礎(chǔ)上只做增強(qiáng)不做改變,主要是為簡化開發(fā)。項目的背景是使用的就是Mybatis-Plus,但是在運(yùn)行項目過程中發(fā)現(xiàn)一個問題,當(dāng)使用Mybatis-Plus進(jìn)行數(shù)據(jù)的更新的時候,更新字段沒有按照我們所預(yù)想的進(jìn)行對應(yīng)的時間的更新。

創(chuàng)建這個字段的語句如下所示:

 `update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新時間'

原因分析

使用Mybatis-Plus的更新方法,進(jìn)行對應(yīng)數(shù)據(jù)實體的更新,比如使用如下方法:

XXX.updateById()
// ....... 等等方法

這些方法使用之后,發(fā)現(xiàn)沒有對updateTime字段數(shù)據(jù)進(jìn)行更新。

原因分析:

當(dāng)selectByld從數(shù)據(jù)庫取出舊數(shù)據(jù),然后修改自己想修改的字段后調(diào)用updateById,會發(fā)現(xiàn)updateTime字段不會更新,這是因為selectByld可以取出updateTime的舊值,更新時填充策路會判斷屬性已有值,不進(jìn)行自動填充,因此updateTime不會自動更新。而且官方目前沒有直接提供強(qiáng)制更新的方法。

查看fillStrategy方法源碼,我們也可以看到只有屬性沒有被填充值,才會執(zhí)行set方法。

解決辦法

解決方法一

更新時設(shè)置更新時間

	TDZopenOrder openOrder = openOrderService.getById(orderId);
	openOrder.setOrderId(washOrderId);
	openOrder.setUpdateTime(LocalDateTime.now());
	openOrder.updateById()

解決方法二

實體上設(shè)置更新時間

	public class TDZopenOrder {
	    @ApiModelProperty("更新時間")
	    @TableField(update = "now()")
	    private LocalDateTime updateTime;
	}

推薦使用方法二,這樣不用每次都取設(shè)置更新時間,簡化代碼?。?!

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何解決IDEA.properties文件中文亂碼問題

    如何解決IDEA.properties文件中文亂碼問題

    這篇文章主要介紹了如何解決IDEA.properties文件中文亂碼問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Spring實現(xiàn)定時任務(wù)的兩種方法詳解

    Spring實現(xiàn)定時任務(wù)的兩種方法詳解

    Spring提供了兩種方式實現(xiàn)定時任務(wù),一種是注解,還有一種就是接口了,這篇文章主要為大家介紹了這兩種方法的具體實現(xiàn)方法,需要的可以參考下
    2024-12-12
  • Spring中@ExceptionHandler注解的工作原理詳解

    Spring中@ExceptionHandler注解的工作原理詳解

    這篇文章主要介紹了Spring中@ExceptionHandler注解的工作原理詳解,Spring Web注解@ExceptionHandler可以用來指定處理某類異常的控制器方法,從而在這些異常發(fā)生時,會有相應(yīng)的控制器方法來處理此類異常,需要的朋友可以參考下
    2024-01-01
  • 聊聊Object類中的wait()和notify()方法

    聊聊Object類中的wait()和notify()方法

    這篇文章主要介紹了Object類中的wait()和notify()方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Spring Boot整合Thymeleaf詳解

    Spring Boot整合Thymeleaf詳解

    這篇文章主要介紹了Spring Boot整合Thymeleaf詳解,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • SpringBoot 項目使用hutool 工具進(jìn)行 http 接口調(diào)用的處理方法

    SpringBoot 項目使用hutool 工具進(jìn)行 http 接口調(diào)用的處理方

    在實際的開發(fā)過程中一個互聯(lián)網(wǎng)的項目來說 ,有可能會涉及到調(diào)用外部接口的實際業(yè)務(wù)場景,下面通過本文給大家介紹SpringBoot 項目 使用hutool 工具進(jìn)行 http 接口調(diào)用的處理方法,需要的朋友可以參考下
    2022-06-06
  • SpringBoot分離打Jar包的兩種配置方式

    SpringBoot分離打Jar包的兩種配置方式

    這篇文章主要介紹了SpringBoot分離打Jar包的兩種配置方式,方式一是基于maven-jar-plugin,方式二是基于spring-boot-maven-plugin,文中結(jié)合實例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • Mybatis?MappedStatement類核心原理詳解

    Mybatis?MappedStatement類核心原理詳解

    這篇文章主要介紹了Mybatis?MappedStatement類,mybatis的mapper文件最終會被解析器,解析成MappedStatement,其中insert|update|delete|select每一個標(biāo)簽分別對應(yīng)一個MappedStatement
    2022-11-11
  • Java  隊列實現(xiàn)原理及簡單實現(xiàn)代碼

    Java 隊列實現(xiàn)原理及簡單實現(xiàn)代碼

    這篇文章主要介紹了Java 隊列實現(xiàn)原理及簡單實現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • Spring Boot應(yīng)用配置常用相關(guān)視圖解析器詳解

    Spring Boot應(yīng)用配置常用相關(guān)視圖解析器詳解

    這篇文章主要給大家介紹了關(guān)于Spring Boot應(yīng)用配置常用相關(guān)視圖解析器的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12

最新評論