目录
1. MybatisPlus生成实体类的时候,没有生成主键的成员变量
我在springboot项目中,用了mybatisplus的代码生成器,期间我遇到了一些问题:主键没有生成,Spring找不到mapper持久层的bean
1. MybatisPlus生成实体类的时候,没有生成主键的成员变量
这里的问题,主要在于 生成类中Strategy属性的设置错误,我们从MybatisPlus官网中扒下来的代码,有这么一行
setSuperEntityColumns
方法用于指定哪些字段是实体类的父类(超类)中的字段。在这里,如果传入了 "id"
,表示 id
字段将被视为父类中的字段,而不会在子类中生成。
MyBatis-Plus 代码生成器默认会根据数据库表的主键自动生成对应的实体类字段,如果数据库表主键字段名称不是 "id"
,那么 MyBatis-Plus 默认的代码生成策略可能无法自动识别它。此时,可以通过 setSuperEntityColumns
方法来手动指定主键字段。
解决方案:注释掉或者删掉就行,除此之外,MybatisPlus还提供了其他的 主键自增策略,可以结合@TableId(type=???)指定
2 .Spring找不到mapper持久层的bean
可能是MybatisPlus版本的一些bug,所以我们这里有两个方案,最好同时都做
①给所有的Mapper文件加@Mapper
②给启动类上面加个注解@MapperScan 然后把Mapper所在的文件位置,加进去
总结
在使用MybatisPlus的时候还是要多加注意,要看依赖是否齐全,版本也最好用最新的,防止远古bug未修复然后出现,在官网复制配置参数的时候最好弄清楚参数的意义,将没用的注释掉或者删掉,另外因为生成模板会自动创建包baomidou,这时候最好让启动类和存放模板的包属于同一个包