mybatis 通用 mapper 使用时抛出 ClassCastException
Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.ClassCastException: sun.reflect.generics.reflectiveObjects.TypeVariableImpl cannot be cast to java.lang.Class at tk.mybatis.mapper.mapperhelper.MapperHelper.setSqlSource(MapperHelper.java:247) at tk.mybatis.mapper.mapperhelper.MapperHelper.processConfiguration(MapperHelper.java:310) at tk.mybatis.spring.mapper.MapperFactoryBean.checkDaoConfig(MapperFactoryBean.java:54) at org.springframework.dao.support.DaoSupport.afterPropertiesSet(DaoSupport.java:44) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1631) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1568) ... 44 more Caused by: java.lang.RuntimeException: java.lang.ClassCastException: sun.reflect.generics.reflectiveObjects.TypeVariableImpl cannot be cast to java.lang.Class at tk.mybatis.mapper.mapperhelper.MapperTemplate.setSqlSource(MapperTemplate.java:246) at tk.mybatis.mapper.mapperhelper.MapperHelper.setSqlSource(MapperHelper.java:244) ... 49 more Caused by: java.lang.ClassCastException: sun.reflect.generics.reflectiveObjects.TypeVariableImpl cannot be cast to java.lang.Class at tk.mybatis.mapper.mapperhelper.MapperTemplate.getEntityClass(MapperTemplate.java:278) at tk.mybatis.mapper.provider.base.BaseSelectProvider.select(BaseSelectProvider.java:67) at tk.mybatis.mapper.provider.base.BaseSelectProvider.selectByRowBounds(BaseSelectProvider.java:85) at sun.reflect.GeneratedMethodAccessor19.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at tk.mybatis.mapper.mapperhelper.MapperTemplate.setSqlSource(MapperTemplate.java:234) ... 50 more
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(10)
评论只为点赞
可能是这儿的问题:ISysStaffService extends IBaseService<SysStaff>;
回复
@Liuzh_533 : 您好,我这边也遇到这个情况。是在通用mapper 的MapperTemplate类的 getEntityClass 方法的Class<?> returnType = (Class<?>) t.getActualTypeArguments()[0];这句报错
引用来自“Liuzh_533”的评论
必须指定泛型类型。
@Liuzh_533 我参照了这个项目

https://github.com/abel533/Mybatis-Spring 并且也指定了泛型的类型了
必须指定泛型类型。
@太黑的忧郁情怀 这个异常是在初始化阶段报的,还没有完成注入呢
类型转换失败,看下你的model得变量类型跟数据库数据是否对了上了,还有xml里面的类型是否声明了
感谢
你把MyMapper放到了mapperScannerConfigurer.setBasePackage的包里面了,MyMapper不能和其他Mapper一样被扫描到。