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 entityList);
// 插入(批量)
boolean saveBatch(Collection 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,所以两个地方都是对应的,随便写一个是会报错的。

说明:以上仅为个人理解,可能有不对地方,若不对,请指正!

你可能感兴趣的:(mybatis-plus)