SpringBoot在使用tk.mybatis.mapper报错

springboot项目引入通用mapper(tk.mybatis.mapper)的时候踩的坑:

报错信息:
java.lang.ClassCastException: sun.reflect.generics.reflectiveObjects.TypeVariableImpl cannot be cast to java.lang.Class

看到这个错误信息,需要查看我们引用的mybatis的配置文件:

第一步查看MyMapper:

package com.mybatis;
import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.MySqlMapper;
/**
 * 特别注意,该接口不能被扫描到,否则会出错 继承自己的MyMapper
 *
 * @param <T>
 */
public interface MyMapper<T> extends Mapper<T>, MySqlMapper<T> {
}

注意一下,这个MyMapper的路劲;

第二步查看nacos中我们配置的mybatis的路劲:

mybatis:
  type-aliases-package: com.**.entity
  mapper-locations: classpath*:mappers/*.xml
  configuration:
    map-underscore-to-camel-case: true
    use-generated-keys: true
mapper:
  mappers:
    - com.xxx.mybatis.MyMapper
  not-empty: false
  identity: MYSQL
  style: normal

在这里插入图片描述
启动类引入的@MapperScan 引入的是import tk.mybatis.spring.annotation.MapperScan;

同时要注意 @MapperScan里的basePackage不能包含通用mapper(我的是BaseDao)的路径,只包含其他的mapper的路径,不然会报错

org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘baseDao’ defined in file [BaseDao.class]: Invocation of init method failed;

nested exception is tk.mybatis.mapper.MapperException: tk.mybatis.mapper.MapperException: java.lang.ClassCastException: sun.reflect.generics.reflectiveObjects.TypeVariableImpl cannot be cast to java.lang.Class

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值