Sfoglia il codice sorgente

fix https://github.com/baomidou/mybatis-plus/issues/3920 分页增加union语法支持

zefeng.zeng 3 anni fa
parent
commit
5fae1fdb58

+ 5 - 0
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/inner/PaginationInnerInterceptor.java

@@ -268,6 +268,11 @@ public class PaginationInnerInterceptor implements InnerInterceptor {
         }
         }
         try {
         try {
             Select select = (Select) CCJSqlParserUtil.parse(sql);
             Select select = (Select) CCJSqlParserUtil.parse(sql);
+            SelectBody selectBody = select.getSelectBody();
+            // https://github.com/baomidou/mybatis-plus/issues/3920  分页增加union语法支持
+            if(selectBody instanceof SetOperationList) {
+                return lowLevelCountSql(sql);
+            }
             PlainSelect plainSelect = (PlainSelect) select.getSelectBody();
             PlainSelect plainSelect = (PlainSelect) select.getSelectBody();
             Distinct distinct = plainSelect.getDistinct();
             Distinct distinct = plainSelect.getDistinct();
             GroupByElement groupBy = plainSelect.getGroupBy();
             GroupByElement groupBy = plainSelect.getGroupBy();