Rumah  >  Artikel  >  Java  >  Bagaimana untuk menyelesaikan masalah TypeAlias ​​memuatkan Mybatis berdasarkan SpringBoot

Bagaimana untuk menyelesaikan masalah TypeAlias ​​memuatkan Mybatis berdasarkan SpringBoot

WBOY
WBOYke hadapan
2023-05-25 16:01:06957semak imbas

SpringBoot memuatkan Mybatis's TypeAlias

Selepas springboot disusun ke dalam balang dan kemudian dijalankan pada Linux, ia akan melaporkan bahawa kelas entiti yang sepadan dengan alias jenis tidak dapat ditemui. Ini adalah masalah dengan pengimbasan pakej springboot.

Projek menggunakan Mybatis’ DefaultVFS untuk mengimbas secara lalai Namun, dalam persekitaran springboot, Mybatis’ DefaultVFS akan menyebabkan masalah semasa mengimbas pakej, jadi VFS hanya boleh diubah suai untuk kejelasan

Secara langsung. tampal kod:

@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();
    }

Apabila springboot dibungkus dan dimulakan, ralat bahawa nama kelas typeAlias ​​mybatis tidak dapat ditemui

Projek springBoot berjalan seperti biasa pada IDEA tetapi ralat berlaku selepas pembungkusan. Ralat secara kasarnya ialah mybatis menghuraikan Mapper Apabila menggunakan xml, typeAlias ​​​​tidak dapat mencari kelas XX

Teg dalam Mapper:

<select parameterType="XXClass" resultMap="XXMap">

Cara penulisan ini berjalan dengan baik dalam IDEA tetapi mempunyai masalah dengan pembungkusan

Cara penulisan yang betul:

<select parameterType="cn.test.xxx.XXClass" resultMap="XXMap">

ParameterType dalam kod mesti menggunakan laluan penuh, jika tidak ralat akan berlaku.

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah TypeAlias ​​memuatkan Mybatis berdasarkan SpringBoot. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam