fix: 修复分页包含 having 语句时,语法依然被优化问题

This commit is contained in:
ruansheng 2024-08-15 11:38:23 +08:00
parent 1522300ff6
commit 12c96f9135

View File

@ -87,9 +87,10 @@ public class MapperUtil {
// 获取查询列和分组列用于判断是否进行优化 // 获取查询列和分组列用于判断是否进行优化
List<QueryColumn> selectColumns = CPI.getSelectColumns(clone); List<QueryColumn> selectColumns = CPI.getSelectColumns(clone);
List<QueryColumn> groupByColumns = CPI.getGroupByColumns(clone); List<QueryColumn> groupByColumns = CPI.getGroupByColumns(clone);
// 如果有 distinct 语句或者 group by 语句则不优化 QueryCondition havingCondition = CPI.getHavingQueryCondition(clone);
// 如果有 distinctgroup byhaving 等语句则不优化
// 这种一旦优化了就会造成 count 语句查询出来的值不对 // 这种一旦优化了就会造成 count 语句查询出来的值不对
if (hasDistinct(selectColumns) || hasGroupBy(groupByColumns)) { if (hasDistinct(selectColumns) || hasGroupBy(groupByColumns) || havingCondition != null) {
return rawCountQueryWrapper(clone); return rawCountQueryWrapper(clone);
} }
// 判断能不能清除 join 语句 // 判断能不能清除 join 语句