MybatisPlusException: Error: Cannot execute table Method, ClassGenricType not found
错误介绍:
使用mp的IService CRUD接口报错如下:
com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: Cannot execute table Method, ClassGenricType not found
项目背景:
项目集成Mybatis-plus(以下简称mp)之后,想要批量插入数据,又不想自己写sql循环插入,也不想用mp的Mapper CRUD 接口,因为该接口只支持单条数据插入,循环插入的话感觉不好。查看官方文档,发现 Service CRUD 接口 支持批量数据插入:
官方方法:
// 插入一条记录(选择字段,策略插入)
boolean save(T entity);
// 插入(批量)
boolean saveBatch(Collection<T> entityList);
// 插入(批量)
boolean saveBatch(Collection<T> entityList, int batchSize);
于是单独写了类实现IService 接口,但是类里面需要实现基类里面的所有方法(试了一下,不能正常保存,明显思路不对了)
网上搜了一圈之后发现:下面的类实现了IService
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
so,我直接继承该类,如下:
public class IServiceImpl extends ServiceImpl,然而不幸的是报错如下:
com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: Cannot execute table Method, ClassGenricType not found
解决方案如下:
public class IServiceImpl extends ServiceImpl
写上对应的Mapper和model类,虽然一开始查看ServiceImpl源码的时候就发现里面定义了前面的两个玩意,但是觉得不影响就没管,但是从报错来看的话,和后面的model大有关联,没指定才会找不到对应的ClassGenricType。
再次尝试之后发现,两个对应的类型都是必须的,少一个都不行,对应的mapper里面继承BaseMapper时也指定了model,所以两个地方都是对应的,随便写一个是会报错的。
说明:以上仅为个人理解,可能有不对地方,若不对,请指正!
还没有评论,来说两句吧...