mybatis分页插件得问题;
原因:因为这段代码PageHelper.startPage(pageNum, pageSize);只会对靠近的第一个select查询语句进行分页;
原本的代码:
public PageResult findPageByLogin(Tcsa tcsa, int pageNum, int pageSize) {
PageHelper.startPage(pageNum, pageSize);
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
String sno = authentication.getName();
StudentExample studentExample = new StudentExample();
StudentExample.Criteria criteria1 = studentExample.createCriteria();
criteria1.andSnoEqualTo(sno);
List<Student> students = studentMapper.selectByExample(studentExample);
TcsaExample example=new TcsaExample();
TcsaExample.Criteria criteria = example.createCriteria();
if(tcsa!=null){
if (tcsa.getId() != null && tcsa.getId().length() > 0) {
criteria.andIdLike("%" + tcsa.getId() + "%");
}
if (tcsa.getSid() != null && tcsa.getSid().length() > 0) {
criteria.andSidLike("%" + tcsa.getSid() + "%");
}
if (tcsa.getCid() != null && tcsa.getCid().length() > 0) {
criteria.andCidLike("%" + tcsa.getCid() + "%");
}
if (!CollectionUtils.isEmpty(students)) {
criteria.andSnoEqualTo(students.get(0).getSno());
}
criteria.andTscaCidAndCCid();
criteria.andTscaSidAndSSid();
criteria.andTscaTidAndTTid();
}
Page<TcsaEo> page= (Page<TcsaEo>)tcsaMapper.selectByExampleVo(example);
return new PageResult(page.getTotal(), page.getResult());
}
更正后的代码:
public PageResult findPageByLogin(Tcsa tcsa, int pageNum, int pageSize) {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
String sno = authentication.getName();
StudentExample studentExample = new StudentExample();
StudentExample.Criteria criteria1 = studentExample.createCriteria();
criteria1.andSnoEqualTo(sno);
List<Student> students = studentMapper.selectByExample(studentExample);
PageHelper.startPage(pageNum, pageSize);
TcsaExample example=new TcsaExample();
TcsaExample.Criteria criteria = example.createCriteria();
if(tcsa!=null){
if (tcsa.getId() != null && tcsa.getId().length() > 0) {
criteria.andIdLike("%" + tcsa.getId() + "%");
}
if (tcsa.getSid() != null && tcsa.getSid().length() > 0) {
criteria.andSidLike("%" + tcsa.getSid() + "%");
}
if (tcsa.getCid() != null && tcsa.getCid().length() > 0) {
criteria.andCidLike("%" + tcsa.getCid() + "%");
}
if (!CollectionUtils.isEmpty(students)) {
criteria.andSnoEqualTo(students.get(0).getSno());
}
criteria.andTscaCidAndCCid();
criteria.andTscaSidAndSSid();
criteria.andTscaTidAndTTid();
}
Page<TcsaEo> page= (Page<TcsaEo>)tcsaMapper.selectByExampleVo(example);
return new PageResult(page.getTotal(), page.getResult());
}
注意我前后PageHelper.startPage(pageNum, pageSize);这段代码放的位置。