首先是错误的代码
@Override public PageResult findUserDiscount(String username, Integer page, Integer pageSize) { PageHelper.startPage(page,pageSize); UserDiscountQuery query = new UserDiscountQuery(); UserDiscountQuery.Criteria criteria = query.createCriteria(); criteria.andUserIdEqualTo(username); List<UserDiscount> list = userDiscountDao.selectByExample(query); if (list.size() > 0) { ArrayList<Integer> arrayList = new ArrayList<>(); for (UserDiscount discount : list) { arrayList.add(discount.getDiscountId()); } DiscountQuery discountQuery = new DiscountQuery(); DiscountQuery.Criteria queryCriteria = discountQuery.createCriteria(); queryCriteria.andIdIn(arrayList); Page<Discount> discounts = ( Page<Discount>)discountDao.selectByExample(discountQuery); return new PageResult(discounts.getTotal(),discounts.getResult()); } return null; }
更正后的代码
@Override public PageResult findUserDiscount(String username, Integer page, Integer pageSize) { UserDiscountQuery query = new UserDiscountQuery(); UserDiscountQuery.Criteria criteria = query.createCriteria(); criteria.andUserIdEqualTo(username); List<UserDiscount> list = userDiscountDao.selectByExample(query); if (list.size() > 0) { ArrayList<Integer> arrayList = new ArrayList<>(); for (UserDiscount discount : list) { arrayList.add(discount.getDiscountId()); } PageHelper.startPage(page,pageSize); DiscountQuery discountQuery = new DiscountQuery(); DiscountQuery.Criteria queryCriteria = discountQuery.createCriteria(); queryCriteria.andIdIn(arrayList); Page<Discount> discounts = ( Page<Discount>)discountDao.selectByExample(discountQuery); return new PageResult(discounts.getTotal(),discounts.getResult()); } return null; }
PageHelper.startPage(page,pageSize);只对紧跟着的查询结果进行分页!