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
@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(); }
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
<select parameterType="XXClass" resultMap="XXMap">
Cara penulisan ini berjalan dengan baik dalam IDEA tetapi mempunyai masalah dengan pembungkusan
<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!