使用mybatis-plus 的baseMapper的selectById 出现查询不到值的情况

  • Post author:
  • Post category:其他


先上代码

 @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 版权协议,转载请附上原文出处链接和本声明。