基于SpringBoot加载Mybatis的TypeAlias问题怎么解决

基于SpringBoot加载Mybatis的TypeAlias问题怎么解决

这篇文章主要介绍“基于SpringBoot加载Mybatis的TypeAlias问题怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“基于SpringBoot加载Mybatis的TypeAlias问题怎么解决”文章能帮助大家解决问题。

SpringBoot加载Mybatis的TypeAlias

springboot打成jar之后再linux上运行会报找不到 type alias 对应的实体类的问题,这是springboot扫包的问题。

基于SpringBoot加载Mybatis的TypeAlias问题怎么解决

工程上默认使用的是Mybatis的DefaultVFS进行扫描,但是在springboot的环境下,Mybatis的DefaultVFS这个扫包会出现问题,所以只能修改VFS,为了清晰可见

直接贴代码:

@BeanpublicSqlSessionFactorysqlSessionFactoryBean()throwsException{logger.info("loadSpringBootVFS");//DefaultVFS在获取jar上存在问题,使用springboot只能修改VFS.addImplClass(SpringBootVFS.class);SqlSessionFactoryBeansqlSessionFactoryBean=newSqlSessionFactoryBean();sqlSessionFactoryBean.setDataSource(dataSource());PathMatchingResourcePatternResolverresolver=newPathMatchingResourcePatternResolver();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");returnsqlSessionFactoryBean.getObject();}

springboot打包启动时报mybatis的typeAlias类名找不到的错误

springBoot项目在IDEA上面正常但是打包之后运行 出错,错误大致为mybatis解析Mapper.xml时 typeAlias找不到XX类

Mapper里面的标签:

<selectparameterType="XXClass"resultMap="XXMap">

这种写法在IDEA里面运行没问题 打包就有问题

正确写法:

<selectparameterType="cn.test.xxx.XXClass"resultMap="XXMap">

代码中的parameterType必须要用全路径才行 否则就出错。

关于“基于SpringBoot加载Mybatis的TypeAlias问题怎么解决”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注恰卡编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

发布于 2022-04-11 21:13:02
收藏
分享
海报
0 条评论
20
上一篇:SpringBoot整合OpenFeign的坑怎么解决 下一篇:springboot怎么通过注解、接口创建定时任务
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码