0
点赞
收藏
分享

微信扫一扫

问题不大-MyBatis-Plus IPage中,对于object中属性赋值问题

猎书客er 2022-03-12 阅读 57

前两天发现了个有趣的问题,在一个Evaluation类中添加一个Book类属性后,在进行该实体类,通过在数据库读取数据后进行ipage分页展示的时候,出现了浏览器对该Evaluation类对属性无法赋值的问题导致无法加载。

问题原因:在写service服务层的时候,把所有Evaluation实体装入List中,在用增强型for遍历,寻找evaluation.getBookId找到所有book,在用evaluation的set方法把book加进去,在之后通过ipage分页,返回pageObject,其实压根就没有赋值进去,浏览器显示的book的记录也是null值

解决方法:用for i循环,不要用增强型,然后先进行分页,具体如下

/*
     * 分页查询评论
     * @param page 页号
     * @param rows 每页记录数
     * @return 分页对象
     * */
    @Override
    public IPage<Evaluation> paging(Integer page, Integer rows) {
        QueryWrapper<Evaluation> queryWrapper = new QueryWrapper<Evaluation>();
        Page<Evaluation> evaluationPage = new Page<Evaluation>(page,rows);
        IPage<Evaluation> pageObject = evaluationMapper.selectPage(evaluationPage,queryWrapper);
        List<Evaluation> evaluationList = pageObject.getRecords();
        for(int i = 0;i<evaluationList.size();i++){
            Evaluation evaluation = evaluationList.get(i);
            //获取Book对象
            Book book = bookMapper.selectById(evaluation.getBookId());
            //获取Member对象
            Member member = memberMapper.selectById((evaluation.getMemberId()));
            //赋值
            evaluation.setBook(book);
            evaluation.setMember(member);
        }
        return pageObject;
    }
举报

相关推荐

0 条评论