最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MyBatis-Plus中MetaObjectHandler沒(méi)生效完美解決

 更新時(shí)間:2023年11月13日 14:59:55   作者:xhx949  
在進(jìn)行測(cè)試時(shí)發(fā)現(xiàn)配置的MyMetaObjectHandler并沒(méi)有生效,本文主要介紹了MyBatis-Plus中MetaObjectHandler沒(méi)生效完美解決,具有一定的參考價(jià)值,感興趣的可以了解一下

Mybatisplus自動(dòng)填充功能失效

通過(guò)SpringBoot框架集成 mybatis-plus首先導(dǎo)入需要的依賴(lài)

		<dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.3.2</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.3.2</version>
        </dependency>

在appication.yml添加相關(guān)配置

mybatis-plus  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl//打印sql語(yǔ)句
  mapper-locations: com/example/mapper/xml/*.xml // 配置mapper的掃描,找到所有的mapper.xml映射文件

創(chuàng)建實(shí)體類(lèi)對(duì)象

@Data
@AllArgsConstructor
@NoArgsConstructor
public class OrderMaster implements Serializable {
    @TableId(type = IdType.ASSIGN_UUID)//自動(dòng)生成
    private String orderId;
    private String Name;
    private String Phone;
    private String Address;
    /**
     * 創(chuàng)建時(shí)間
     */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    /**
     * 修改時(shí)間
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}

按照官方文檔進(jìn)行配置
要記得添加@Component注解

@Component
//自動(dòng)填充配置
public class FillHandler implements MetaObjectHandler {
    @Override
    public void insertFill(MetaObject metaObject) {
        log.info("開(kāi)始填充時(shí)間");

        this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now());
        this.setFieldValByName("updateTime", LocalDateTime.now(),metaObject);
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        this.setFieldValByName("updateTime", LocalDateTime.now(),metaObject);
    }
}

正常來(lái)說(shuō)到了這一步,一般情況下就好了常見(jiàn)的錯(cuò)誤有這幾種

  • 日期類(lèi)不一致導(dǎo)致 創(chuàng)建日期、更新日期 為 null
  • @Component 沒(méi)有被掃到,可以看下啟動(dòng)類(lèi)的位置,啟動(dòng)類(lèi)掃描的包是在其所在包以下的包
  • 還有就是填充的字段屬性不一致,比如Date和LocalDateTime
  • 檢查MetaObjectHandler實(shí)現(xiàn)類(lèi)是否使用@Component
  • 實(shí)體類(lèi)字段使用注解 @TableField(fill = FieldFill.INSERT)

可惜我的問(wèn)題不是以上幾種,于是我打了斷點(diǎn),發(fā)現(xiàn)根本沒(méi)有執(zhí)行到 MetaObjectHandler的實(shí)現(xiàn)類(lèi)=>FillHandler于是我輸出了所有的bean,發(fā)現(xiàn)MetaObjectHandler并沒(méi)有注入進(jìn)去。
這里的原因在于mybatis有自己默認(rèn)的配置文件,所以我們自定義的沒(méi)有生效,自定義Bean sqlSessionFactory 影響到了 globalConfig ,導(dǎo)致配置失效。
添加這樣一個(gè)配置類(lèi)即可

import com.baomidou.mybatisplus.core.config.GlobalConfig;
import com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils;
import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
import com.example.handler.FillHandler;
import org.apache.ibatis.session.SqlSessionFactory;
import org.springframework.context.annotation.Bean;

import javax.sql.DataSource;

public class sqlSessionFactory {

    @Bean
    public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
        MybatisSqlSessionFactoryBean mybatisSqlSessionFactoryBean = new MybatisSqlSessionFactoryBean();
        //獲取mybatis-plus全局配置
        GlobalConfig globalConfig = GlobalConfigUtils.defaults();
        //mybatis-plus全局配置設(shè)置元數(shù)據(jù)對(duì)象處理器為自己實(shí)現(xiàn)的那個(gè)
        globalConfig.setMetaObjectHandler(new FillHandler());
        mybatisSqlSessionFactoryBean.setDataSource(dataSource);
        //mybatisSqlSessionFactoryBean關(guān)聯(lián)設(shè)置全局配置
        mybatisSqlSessionFactoryBean.setGlobalConfig(globalConfig);
        return mybatisSqlSessionFactoryBean.getObject();
    }

}

到這里就終于好了,這個(gè)問(wèn)題困擾了我一整天,終于解決了!

到此這篇關(guān)于MyBatis-Plus中MetaObjectHandler沒(méi)生效完美解決的文章就介紹到這了,更多相關(guān)MyBatis-Plus MetaObjectHandler沒(méi)生效內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java concurrency之鎖_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java concurrency之鎖_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要為大家詳細(xì)介紹了Java concurrency之鎖的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Mybatis-Plus實(shí)體類(lèi)繼承Model的使用小結(jié)

    Mybatis-Plus實(shí)體類(lèi)繼承Model的使用小結(jié)

    Mybatis-Plus實(shí)體類(lèi)繼承Model的使用是Mybatis-Plus中的一個(gè)重要特性,它允許開(kāi)發(fā)者通過(guò)繼承Model類(lèi)來(lái)快速實(shí)現(xiàn)一些通用的功能,本文主要介紹了Mybatis-Plus實(shí)體類(lèi)繼承Model的使用小結(jié),感興趣的可以了解一下
    2024-07-07
  • springboot中poi使用操作方法

    springboot中poi使用操作方法

    在項(xiàng)目中,有很多對(duì)excel的操作,大都數(shù)時(shí)候我們都會(huì)使用poi工具類(lèi),本文將介紹poi的一些使用方法,感興趣的朋友跟隨小編一起看看吧
    2023-08-08
  • 利用Java編寫(xiě)24點(diǎn)小游戲的實(shí)例代碼

    利用Java編寫(xiě)24點(diǎn)小游戲的實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于如何利用Java編寫(xiě)24點(diǎn)小游戲的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • SpringBoot中的聲明式事務(wù)+切面事務(wù)+編程式事務(wù)詳解

    SpringBoot中的聲明式事務(wù)+切面事務(wù)+編程式事務(wù)詳解

    這篇文章主要介紹了SpringBoot中的聲明式事務(wù)+切面事務(wù)+編程式事務(wù)詳解,事務(wù)管理對(duì)于企業(yè)應(yīng)用來(lái)說(shuō)是至關(guān)重要的,當(dāng)出現(xiàn)異常情況時(shí),它也可以保證數(shù)據(jù)的一致性,需要的朋友可以參考下
    2023-08-08
  • spring cloud 集成 ribbon負(fù)載均衡的實(shí)例代碼

    spring cloud 集成 ribbon負(fù)載均衡的實(shí)例代碼

    spring Cloud Ribbon 是一個(gè)客戶(hù)端的負(fù)載均衡器,它提供對(duì)大量的HTTP和TCP客戶(hù)端的訪(fǎng)問(wèn)控制。本文給大家介紹spring cloud 集成 ribbon負(fù)載均衡,感興趣的朋友跟隨小編一起看看吧
    2021-11-11
  • 基于Java編寫(xiě)一個(gè)簡(jiǎn)單的風(fēng)控組件

    基于Java編寫(xiě)一個(gè)簡(jiǎn)單的風(fēng)控組件

    這篇文章主要為大家詳細(xì)介紹了如何基于Java編寫(xiě)一個(gè)簡(jiǎn)單的風(fēng)控組件,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Java有一定的幫助,需要的可以參考一下
    2022-12-12
  • Java串口通信JSerialComm的實(shí)現(xiàn)

    Java串口通信JSerialComm的實(shí)現(xiàn)

    本文介紹了使用JSerialComm庫(kù)進(jìn)行Java串口通信,包括引入庫(kù)的方式、設(shè)置和操作串口、發(fā)送與接收數(shù)據(jù)以及添加數(shù)據(jù)監(jiān)聽(tīng)器,具有一定的參考價(jià)值,感興趣的可以了解一下
    2026-01-01
  • Java多線(xiàn)程 自定義線(xiàn)程池詳情

    Java多線(xiàn)程 自定義線(xiàn)程池詳情

    這篇文章主要介紹了Java多線(xiàn)程 自定義線(xiàn)程池,文章主要是學(xué)習(xí)代碼,沒(méi)有過(guò)多解析,需要的朋友可以參考一下文章的具體內(nèi)容
    2021-10-10
  • SpringBoot整合通用mapper實(shí)現(xiàn)泛型BaseController增刪改方式

    SpringBoot整合通用mapper實(shí)現(xiàn)泛型BaseController增刪改方式

    本文介紹了如何在SpringBoot項(xiàng)目中整合通用Mapper實(shí)現(xiàn)泛型BaseController的增刪改功能,通過(guò)統(tǒng)一的代碼實(shí)現(xiàn)減少重復(fù),提高開(kāi)發(fā)效率
    2025-11-11

最新評(píng)論

马龙县| 焉耆| 阿瓦提县| 崇阳县| 安多县| 财经| 普定县| 内黄县| 梁山县| 民县| 广宗县| 阿拉善左旗| 乐昌市| 通河县| 阿拉善左旗| 彭州市| 通河县| 榕江县| 平原县| 滨州市| 许昌县| 丹寨县| 陆河县| 龙门县| 南昌市| 榕江县| 邹平县| 灵璧县| 凤台县| 天门市| 高唐县| 曲阳县| 黄浦区| 临城县| 乐业县| 齐河县| 文成县| 大同市| 宣威市| 海兴县| 永宁县|