Ver código fonte

SQLServer2005Dialect 改回写死的分页参数

miemie 6 anos atrás
pai
commit
01ca6847df

+ 4 - 3
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/pagination/dialects/SQLServer2005Dialect.java

@@ -61,12 +61,13 @@ public class SQLServer2005Dialect implements IDialect {
         if (StringUtils.isEmpty(orderby)) {
             orderby = "ORDER BY CURRENT_TIMESTAMP";
         }
-
+        long firstParam = offset + 1;
+        long secondParam = offset + limit;
         String sql = "WITH selectTemp AS (SELECT " + distinctStr + "TOP 100 PERCENT " +
             " ROW_NUMBER() OVER (" + orderby + ") as __row_number__, " + pagingBuilder +
             ") SELECT * FROM selectTemp WHERE __row_number__ BETWEEN " +
             //FIX#299:原因:mysql中limit 10(offset,size) 是从第10开始(不包含10),;而这里用的BETWEEN是两边都包含,所以改为offset+1
-            FIRST_MARK + " AND " + SECOND_MARK + " ORDER BY __row_number__";
-        return new DialectModel(sql, offset + 1, offset + limit).setConsumerChain();
+            firstParam + " AND " + secondParam + " ORDER BY __row_number__";
+        return new DialectModel(sql, firstParam, secondParam);
     }
 }