遇到一个问题完不成后面都做不了啊

遇到一个问题完不成后面都做不了啊

public IPage<Evaluation> allEvaluation(Integer page, Integer rows) {
QueryWrapper<Evaluation> queryWrapper=new QueryWrapper<Evaluation>();
   QueryWrapper<Book> bookQueryWrapper=new QueryWrapper<Book>();
   QueryWrapper<Member> memberQueryWrapper=new QueryWrapper<Member>();
   Page<Evaluation> evaluationPage=new Page<Evaluation>(page,rows);
   IPage<Evaluation> iPage=evaluationMapper.selectPage(evaluationPage,queryWrapper);
   List<Evaluation> list=iPage.getRecords();
   for(int i=0;i<20;i++){
list.get(i).setMember(memberMapper.selectOne(memberQueryWrapper.eq("member_id",list.get(i).getMemberId())));
       list.get(i).setBook(bookMapper.selectOne(bookQueryWrapper.eq("book_id",list.get(i).getBookId())));
   }
return iPage;
}

这里的evaluation   里面book都能赋值但是member不行。。。。第一个的evaluation的member能赋值  后面19个不行  不知道为啥  但是book又都可以

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕阿园 2021-07-10 11:42:22

同学你好,同学的代码中QueryWrapper对象没有重置,所以每次循环时条件都会叠加,如下

第一次运行

http://img1.sycdn.imooc.com//climg/60e915af0934c20f10280070.jpg

第二次运行

http://img1.sycdn.imooc.com//climg/60e915bf09cd853009650067.jpg

第三次运行

http://img1.sycdn.imooc.com//climg/60e915cd096d347310090051.jpg

以此类推,这样每循环一次,where中的条件就叠加一次,从而导致只有第一次是正常的,第一次之后都会执行失败,导致查询不到结果

同学可以使用new关键字创建对象或者可以使用clear方法清除下QueryWrapper

 //           memberQueryWrapper = new QueryWrapper<Member>();
//            bookQueryWrapper = new QueryWrapper<Book>();
            memberQueryWrapper.clear();
            bookQueryWrapper.clear();

使用其中一种即可,推荐使用clear()方法

祝学习愉快~

好帮手慕小尤 2021-07-09 11:25:02

同学你好,1、建议同学查看Evaluation类中是否存在setMember()方法。

2、建议同学查看setMember()方法的参数类型是否与memberMapper.selectOne(memberQueryWrapper.eq("member_id",list.get(i).getMemberId()))返回的类型一致。如果不一致,则是会出现异常。

3、如果还存在问题,则建议同学反馈一下异常信息,便于老师定位问题。

祝学习愉快!

  • 提问者 qq_慕九州3257409 #1

    一致的啊  自动生成的set方法  并且第一个member的值四hi赋值成功了  后20个不成功

    2021-07-09 13:48:52
  • 同学你好,1、可能是第一次循环时,有通过下方语句查询到了数据,从而可以成功赋值。而在其他次数的循环中,未查询到数据导致赋值为空(null)。则建议同学在循环中输出下方语句,查看是否是未查询到数据。

    memberMapper.selectOne(memberQueryWrapper.eq("member_id",list.get(i).getMemberId()))

    2、在测试中是否有存在异常,如果有,则建议同学进行反馈,便于老师定位问题。

    祝学习愉快!

    2021-07-09 15:46:04
  • 但为啥查询会出现未查询到数据呢我用断点看的就第一次有赋值  并且查询数据用的是id啊   被查询的id也存在啊


    2021-07-09 16:44:20
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师