From 12c96f9135a4b116bb2e5719d29679d19b947564 Mon Sep 17 00:00:00 2001 From: ruansheng Date: Thu, 15 Aug 2024 11:38:23 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=88=86=E9=A1=B5?= =?UTF-8?q?=E5=8C=85=E5=90=AB=20having=20=E8=AF=AD=E5=8F=A5=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E8=AF=AD=E6=B3=95=E4=BE=9D=E7=84=B6=E8=A2=AB=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/mybatisflex/core/util/MapperUtil.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/util/MapperUtil.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/util/MapperUtil.java index 4db0d1f1..576eeec4 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/util/MapperUtil.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/util/MapperUtil.java @@ -87,9 +87,10 @@ public class MapperUtil { // 获取查询列和分组列,用于判断是否进行优化 List selectColumns = CPI.getSelectColumns(clone); List groupByColumns = CPI.getGroupByColumns(clone); - // 如果有 distinct 语句或者 group by 语句则不优化 + QueryCondition havingCondition = CPI.getHavingQueryCondition(clone); + // 如果有 distinct、group by、having 等语句则不优化 // 这种一旦优化了就会造成 count 语句查询出来的值不对 - if (hasDistinct(selectColumns) || hasGroupBy(groupByColumns)) { + if (hasDistinct(selectColumns) || hasGroupBy(groupByColumns) || havingCondition != null) { return rawCountQueryWrapper(clone); } // 判断能不能清除 join 语句