先上代码
@Override
public CourseInfoForm getCourseInfo (String id) {
//1.查询课程信息
EduCourse eduCourse = baseMapper.selectById(id);
CourseInfoForm courseInfoForm = new CourseInfoForm();
if (eduCourse != null) {
BeanUtils.copyProperties(eduCourse, courseInfoForm);
} else {
throw new GuliException(20001, "查询课程信息失败");
}
//2.查询课程描述信息
EduCourseDescription courseDescription = eduCourseDescriptionService.getById(id);
courseInfoForm.setDescription(courseDescription.getDescription());
return courseInfoForm;
}
我这里的id 在实体类中的id是和数据库中的一致的
但是就是查询不到数据
我们都知道一般使用mybatis-plus 来对数据库操作的时候,实体类的id是需要和数据库中的表的id相对应的。
我这里一定是对应的,所以就不是id不对应的情况
但是还是会出现数据找不到的情况
后面我找了找实体类的参数
发现我这里加上了逻辑删除的注解,但是我的数据库中is_Deleted 字段中的值是null,于是我加上默认的值0,重新运行,使用swagger 测试的时候成功返回了数据
- 总结:如果使用mybatis-plus 通过id查询数据的时候,出现查询不到的结果
- 第一:可能是你的数据库中的字段名id 和实体类中的参数id不一致,需要加上 @TableId(value = “数据库中的id”, type = IdType.ASSIGN_ID)注解
- 第二:如果加了id映射后也没有数据,那么可能就是你的其他字段,比如逻辑删除isDeleted 在建表的时候没有设置成非空默认值为0,加上@TableLogic注解后,也会出现数据查询不到的结果。
所以大家一定细心!
ps:如果本篇文章对您有帮助,请点点关注~ 谢谢
版权声明:本文为shilu6558445原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。