Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'xxx.xx.xx.bean'

今天踩到了一个自己造成的坑,记录一下异常处理的分析过程。

  1. 项目是SpringBoot集成mybaits-plus,贴出异常

    org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userPictureController': Unsatisfied dependency expressed through field 'memberService';


    nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'qwMemberServiceImpl': Unsatisfied dependency expressed through field 'baseMapper';


    nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'qwMemberMapper' defined in file [E:\java\scanner\target\classes\com\sjjd\scanpen\mapper\QwMemberMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory';


    nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/spring/boot/starter/MybatisPlusAutoConfiguration.class]: Bean instantiation via factory method failed;


    nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception;


    nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [E:\java\scanner\target\classes\com\sjjd\scanpen\mapper\xml\QwExercisePointMapper.xml]';


    nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is 'file [E:\java\scanner\target\classes\com\sjjd\scanpen\mapper\xml\QwExercisePointMapper.xml]'.


    Cause: org.apache.ibatis.builder.BuilderException: Error resolving class.
    Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'com.sjjd.entity.QwExercisePoint'.  
    Cause: java.lang.ClassNotFoundException: Cannot find class: com.sjjd.entity.QwExercisePoint

  2. 分析异常:我们从"Cause:"语句开始找原因,直接定位到最后三行
    1. Cause: org.apache.ibatis.builder.BuilderException: Error resolving class.
      Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'com.sjjd.entity.QwExercisePoint'.  
      Cause: java.lang.ClassNotFoundException: Cannot find class: com.sjjd.entity.QwExercisePoint
    2. 解释:
      1. 第一行:类解析错误,导致项目编译异常;
      2. 第二行:无法解析“com.sjjd.entity.QwExercisePoint”别名,导致ibatis类型异常;
      3. 第三行:找不到com.sjjd.entity.QwExercisePoint的java类的异常;
    3. 结论:xxxxmapper.xml文件中 ‘com.sjjd.entity.QwExercisePoint’ java类找不到导致的一系列异常
  3. 代码纠正:
    1. 贴出异常发生所在的xml文件
      
      
      
      
          
          
              
              
              
              
              
          
      
      
    2. 修改:xml文件中的com.sjjd.entity.QwExercisePoint"> 全类名编写错误, 有两种修改方案:
      1. 将全类名改为类名“QwExercisePoint”,让mybaits以别名处理,自己找实体类。(这种方式可以在程序员没有发现实体类全类名错误的时候使用,很少有这样的情况,本次是由于代码迁移产生的问题)
      2. 找到实体类位置,改为正确的全类名  。
              Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'xxx.xx.xx.bean'_第1张图片
      3. 按照第二种方式 修改后的代码
        
        
        
        
            
            
                
                
                
                
                
            
        
        

         

    3. 运行结果:以上两种方式都可以编译通过,成功运行

 

你可能感兴趣的:(异常踩坑)