首頁 > Java > java教程 > 主體

基於SpringBoot載入Mybatis的TypeAlias問題怎麼解決

WBOY
發布: 2023-05-25 16:01:06
轉載
1011 人瀏覽過

SpringBoot載入Mybatis的TypeAlias

springboot打成jar之後再linux上運行會報找不到 type alias 對應的實體類別的問題,這是springboot掃包的問題。

工程上預設使用的是Mybatis的DefaultVFS進行掃描,但是在springboot的環境下,Mybatis的DefaultVFS這個掃包會出現問題,所以只能修改VFS,為了清晰可見

直接貼程式碼:

@Bean
    public SqlSessionFactory sqlSessionFactoryBean() throws Exception {
        logger.info("load SpringBootVFS");
        //DefaultVFS在获取jar上存在问题,使用springboot只能修改
        VFS.addImplClass(SpringBootVFS.class);
        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setDataSource(dataSource());
        PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
        Resource[] resources1 = resolver.getResources("classpath*:/mybatis/*.xml");
        Resource[] resources2 = resolver.getResources("classpath*:/mysql/mapper/*.xml");
        Resource[] resources = (Resource[]) ArrayUtils.addAll(resources1,resources2);
        sqlSessionFactoryBean.setMapperLocations(resources);
        sqlSessionFactoryBean.setTypeAliasesPackage("com.xxx.xx.entity");
        return sqlSessionFactoryBean.getObject();
    }
登入後複製

springboot打包啟動時報mybatis的typeAlias類別名稱找不到的錯誤

springBoot專案在IDEA上面正常但是打包之後運行出錯,錯誤大致為mybatis解析Mapper. xml時typeAlias找不到XX類別

Mapper裡面的標籤:

<select parameterType="XXClass" resultMap="XXMap">
登入後複製

這種寫法在IDEA裡面運行沒問題打包就有問題

正確寫法:

<select parameterType="cn.test.xxx.XXClass" resultMap="XXMap">
登入後複製

程式碼中的parameterType必須要用全路徑才行否則就出錯。

以上是基於SpringBoot載入Mybatis的TypeAlias問題怎麼解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板