问题描述
在使用MyBatis的时候,报错信息如下:
Caused by: org.apache.ibatis.type.TypeException: Could not resolve type alias 'PlantModelParentsRuleInfo'. Cause: java.lang.ClassNotFoundException: Cannot find class: PlantModelParentsRuleInfo
at org.apache.ibatis.type.TypeAliasRegistry.resolveAlias(TypeAliasRegistry.java:120)
at org.apache.ibatis.builder.BaseBuilder.resolveAlias(BaseBuilder.java:149)
at org.apache.ibatis.builder.BaseBuilder.resolveClass(BaseBuilder.java:116)
... 65 common frames omitted
Caused by: java.lang.ClassNotFoundException: Cannot find class: PlantModelParentsRuleInfo
at org.apache.ibatis.io.ClassLoaderWrapper.classForName(ClassLoaderWrapper.java:200)
at org.apache.ibatis.io.ClassLoaderWrapper.classForName(ClassLoaderWrapper.java:89)
at org.apache.ibatis.io.Resources.classForName(Resources.java:261)
at org.apache.ibatis.type.TypeAliasRegistry.resolveAlias(TypeAliasRegistry.java:116)
... 67 common frames omitt
原因分析:
在报错信息上有个ibatis
:xml文件上面的报错。
结合报错信息上 .ClassNotFoundException: Cannot find class: PlantModelParentsRuleInfo
:PlantModelParentsRuleInfo 找不到
两者结合,我们就可以大致的推断出 是xml文件上的 PlantModelParentsRuleInfo
扫描不到。
解决方案:
方法一
首先,选择到需要的xml文件。
Ctrl + F
输入 PlantModelParentsRuleInfo
,进行搜索:
发现,在xml文件中:如下图所示:只是写明了类名
那如果通过类名找不到的话,那就写上全限定名。
方法二
也可以动用mybatis的配置信息
# MyBatis配置
mybatis:
# 搜索指定包别名
typeAliasesPackage: com.ruoyi.**.domain
# 配置mapper的扫描,找到所有的mapper.xml映射文件
mapperLocations: classpath*:mapper/**/*Mapper.xml
# 加载全局的配置文件
configLocation: classpath:mybatis/mybatis-config.xml
具体的映射思路如下:
举一反三
如果有这种报错信息呢?
# 问题描述借用文章:https://blog.csdn.net/Ma_Liu_Min/article/details/107514654
Caused by: org.apache.ibatis.type.TypeException: Could not resolve type alias ' com.***.facade.boss.***.NewStudentDto'. Cause: java.lang.ClassNotFoundException: Cannot find class: com.***.facade.boss.***.NewStudentDto
at org.apache.ibatis.type.TypeAliasRegistry.resolveAlias(TypeAliasRegistry.java:117)
at org.apache.ibatis.builder.BaseBuilder.resolveAlias(BaseBuilder.java:130)
at org.apache.ibatis.builder.BaseBuilder.resolveClass(BaseBuilder.java:101)
... 101 more
Caused by: java.lang.ClassNotFoundException: Cannot find class: com.***.facade.boss.***.NewStudentDto
at org.apache.ibatis.io.ClassLoaderWrapper.classForName(ClassLoaderWrapper.java:190)
at org.apache.ibatis.io.ClassLoaderWrapper.classForName(ClassLoaderWrapper.java:89)
at org.apache.ibatis.io.Resources.classForName(Resources.java:256)
at org.apache.ibatis.type.TypeAliasRegistry.resolveAlias(TypeAliasRegistry.java:113)
... 103 more
没错:就是在
xml 文件上 找不到 ' com.***.facade.boss.***.NewStudentDto'.
就是在写全限定名的时候,多加了一个空格。解决方法:去掉空格即可。
旧: ' com.facade.boss.NewStudentDto'.
新: 'com.facade.boss.NewStudentDto'.