遇到一个问题完不成后面都做不了啊
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又都可以
32
收起
正在回答 回答被采纳积分+1
2回答
好帮手慕阿园
2021-07-10 11:42:22
同学你好,同学的代码中QueryWrapper对象没有重置,所以每次循环时条件都会叠加,如下
第一次运行
第二次运行
第三次运行
以此类推,这样每循环一次,where中的条件就叠加一次,从而导致只有第一次是正常的,第一次之后都会执行失败,导致查询不到结果
同学可以使用new关键字创建对象或者可以使用clear方法清除下QueryWrapper
// memberQueryWrapper = new QueryWrapper<Member>(); // bookQueryWrapper = new QueryWrapper<Book>(); memberQueryWrapper.clear(); bookQueryWrapper.clear();
使用其中一种即可,推荐使用clear()方法
祝学习愉快~
java工程师2020版
- 参与学习 人
- 提交作业 9400 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星