当前使用版本(必填,否则不予处理)
v3.3.2
该问题是如何引起的?(确定最新版也有问题再提!!!)
由于前端展示方式不同,需要对同一数据表分页查询和查询所有(都按time倒序),就让前端传size=-1来查询所有,
但是size=-1的时候,page中设置的排序失效。
看了下PaginationInterceptor#intercept方法源码
/*
* 不需要分页的场合,如果 size 小于 0 返回结果集
*/
if (null == page || page.getSize() < 0) {
return invocation.proceed();
}
...
String buildSql = concatOrderBy(originalSql, page);
处理排序的地方语句没有执行。
个人觉得在查询所有的情况下(size为负)也需要处理排序,虽然可以通过在QueryWrapper中设置排序,但如果排序由前端传入就需要从page中转到wrapper中才能生效
重现步骤(如果有就写完整)
前端未自定义排序时,在page中设置了默认time倒序
if (page.getOrders().isEmpty()) {
page.addOrder(OrderItem.desc("time"));
}