问题描述

在使用springboot+tk-mybatis做案例时遇到了一个坑,在测试tk-mybatis的通用Mapper中的selectByPrimaryKey方法的时候发现不能按照主键进行获取得到结果。 一开始以为是数据库的问题,重建数据库后还是一样的问题,然后开启mybatis sql日志打印功能后发现,生成的sql是有问题的:

在这里插入图片描述在这里插入图片描述在这里插入图片描述
sql日志:
在这里插入图片描述
从日志中可以发现它并不是按照id号来查,那就应该是主键不能被识别导致的,因为当实体类未设置主键时,tk-mybatis会将所有字段当成联合主键进行查询。后面找了半天发现自己犯了一个低级错误,真是泪奔,原来自己在写实体类时,引入@Id注解时导错了包。。。

问题解决

这里应该导入javax.persistence.Id,我却导成了org.springframework.data.annotation.Id。所以自己以后编写代码时一定要注意看清,在此特意为此次自己挖的坑记录一下,希望以后编码能够细心。

import javax.persistence.Id

正确sql:
在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐