1、项目参数
springboot 2.6.13
jdk8
Mybatis-Plus3.5.4
2、问题描述
Mybatis-puls中select查询方法报错Can not find table primary key in Class,
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.example.dao.FLowerDao.selectById
3、问题原因
表里有主键,但是报找不到主键,因为mybatis plus 里面自动匹配主键字段为id
当数据库中的主键不为id时会报出上述错误。
解决:
添加下面代码
@TableId(value = "flower_id",type = IdType.INPUT)
value:设置数据库字段值
type:设置主键类型、用户输入ID(该类型可以通过自己注册自动填充插件进行填充)建议使用INPUT
type有六种类型类型,最下面三个只有插入主键为空时,才会自动填充,可根据数据表主键类型自行选择合适的type类型
类型 | 解释 |
AUTO | 数据库自增ID |
NONE | 数据库未设置主键类型(将会跟随全局) |
INPUT | 用户输入ID(该类型可以通过自己注册自动填充插件进行填充) |
ID_WORKER | 全局唯一ID(idWorker) |
UUID | 全局唯一ID(UUID) |
ID_WORKER_STR | 字符串全局唯一ID(idWorker 的字符串表示) |