在实际项目开发中,如果使用mybatis,
com.github.pagehelper.PageHelper;组件,分页页面点击速度快了以后,在页面切换的时候,新切换的页面会报错,分页sql中会多出来一个Limit 关键字。
解决方法:PageHelper.clearPage();
接口调用前调用执行PageHelper.clearPage() 方法。测试可以解决问题。目前不清楚会引起什么问题。
欢迎指正。
public PageInfo<ProductVo> getByPage(String keyword, String productCategoryId, List<Long> labelId, Integer sourceId,
Integer status, Integer saleStatus, Integer page, Integer perPage)
{
PageHelper.clearPage();
Map<String, Object> conditions = new HashMap<>();
if (StringUtils.isNotEmpty(keyword))
{
conditions.put("keyword", keyword);
}
if (StringUtils.isNotEmpty(productCategoryId))
{
conditions.put("productCategoryId", productCategoryId);
}
if (CollectionUtils.isNotEmpty(labelId))
{
conditions.put("labelId", labelId);
}
if (Objects.nonNull(sourceId))
{
conditions.put("sourceId", sourceId);
}
if (Objects.nonNull(status))
{
conditions.put("status", status);
}
if (Objects.nonNull(saleStatus))
{
conditions.put("saleStatus", saleStatus);
}
Integer start = (page - 1) * perPage;
List<Product> products = productDao.findByConditionPage(conditions, start, perPage);
int total = productDao.findCountByCondition(conditions);
List<ProductVo> retVo = entityListToVoList(products);
PageInfo<ProductVo> pageInfo = PageUtils.buildPage(page, perPage, total, retVo);
return pageInfo;
}