SpringBoot整合Mybatis,TypeAliases配置失败的问题
2024-09-30 12:02:00
SpringBoot整合Mybatis,TypeAliases配置失败的问题
问题描述
在应用MyBatis时,使用对象关系映射,将对象和Aliase映射起来。
在Mybatis的文档明确写出,如果你没有明确定义实体类的Aliase,框架会自动将Class Name自动
作为别名。
那么问题来了,当使用java -jar xxx.jar&
启动的时候,会报出以下错误,
Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'XXXXX'.Cause: java.lang.ClassNotFoundException: Cannot find class: XXXXX
从异常信息来看,明显就是无法从本地检索到alise
对应的类,并最终导致sqlSessionFactory
等初始化
失败。而且吊轨的是,直接在Idea中启动是没有问题的,启动jar包才会出现这个问题
解决方法
参考博主A_Beaver的文章,原来mybatis的facroty需要加载SpringBoot独特的虚拟文件系统,才能识别类路径
public SpringBootVFS() {
this.resourceResolver = new PathMatchingResourcePatternResolver(getClass().getClassLoader());
}
从以上代码看,其实是通过PathMatchingResourcePatternResolver
实现资源的加载
修复该问题只需要在mybatis的配置类中,设置一下factory即可,
@Bean(name = "masterSqlSessionFactory")
@Primary
public SqlSessionFactory sqlSessionFactory(@Qualifier("masterDataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
bean.setVfs(SpringBootVFS.class);//设置SpringBootVFS
bean.setTypeAliasesPackage("com.fulan.domain.red");
...
}
参考
完结!
最新文章
- 高薪诚聘熟悉ABP框架的.NET高级开发工程师(2016年7月28日重发)
- C#获取硬盘序列号的问题求助
- MVC4 +EasyUI Tabs 使用
- Jquery操作下拉框(DropDownList)实现取值赋值
- Windows下Nginx+Mysql+Php(wnmp)环境搭建
- Apache Kafka源码分析 - ReplicaStateMachine
- Android 获取网络状态
- poj 1149 最大流
- layer弹出标签层tab
- UML建模之状态图(Statechart Diagram)
- PHP面向对象编程快速入门
- Linux 之Cut命令详解
- Android开发之旅:android架构
- startActivityForResult与onActivityResult
- 编译安装LAMP并实现wordpress
- 章节十、4-CSS Classes---用多个CSS Classes定位元素
- 高性能IO之Reactor模式
- JAVA课程课后作业之使用递归完成回文
- python全栈开发 * 31知识点汇总 * 180716
- SQL中游标的使用(转)
热门文章
- C语言转置矩阵算法
- C++基础--回调的应用
- java.langThrowable:STACKTRACE
- 关于windows server 里Let's Encrypt续订的问题
- JAVA程序员常用开发工具
- 【Leetcode】【Medium】Construct Binary Tree from Inorder and Postorder Traversal
- 工作好搭档(四):铷安居 H-C81 电脑桌
- MQ中将消息发送至远程队列的配置
- Hibernate多对多关联关系
- 博客改用markdown编写啦!