mybatis 通用 mapper 使用时抛出 ClassCastException

发布于 2021-12-08 18:46:07 字数 1997 浏览 952 评论 10

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(10

断爱 2021-12-08 19:35:19

评论只为点赞

嘦怹 2021-12-08 19:35:15

可能是这儿的问题:ISysStaffService extends IBaseService<SysStaff>;

飘然心甜 2021-12-08 19:34:50

回复
@Liuzh_533 : 您好,我这边也遇到这个情况。是在通用mapper 的MapperTemplate类的 getEntityClass 方法的Class<?> returnType = (Class<?>) t.getActualTypeArguments()[0];这句报错

坐在坟头思考人生 2021-12-08 19:34:36

引用来自“Liuzh_533”的评论

必须指定泛型类型。

后知后觉 2021-12-08 19:33:09

@Liuzh_533 我参照了这个项目
https://github.com/abel533/Mybatis-Spring 并且也指定了泛型的类型了
3

可是我不能没有你 2021-12-08 19:31:33

必须指定泛型类型。

成熟的代价 2021-12-08 19:25:30

@太黑的忧郁情怀 这个异常是在初始化阶段报的,还没有完成注入呢

柠檬 2021-12-08 19:21:08

类型转换失败,看下你的model得变量类型跟数据库数据是否对了上了,还有xml里面的类型是否声明了

等风来 2021-12-08 19:02:11

感谢

清风夜微凉 2021-12-08 19:01:26

你把MyMapper放到了mapperScannerConfigurer.setBasePackage的包里面了,MyMapper不能和其他Mapper一样被扫描到。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文