Forráskód Böngészése

fix: github pull/4882

hubin 1 éve
szülő
commit
6c41821ac3

+ 2 - 2
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/TableNameParser.java

@@ -51,7 +51,7 @@ public final class TableNameParser {
     private static final String KEYWORD_FROM = "from";
     private static final String KEYWORD_USING = "using";
     private static final String KEYWORD_UPDATE = "update";
-    private static final String KEYWORD_STRAIGHT_JOIN="straight_join";
+    private static final String KEYWORD_STRAIGHT_JOIN = "straight_join";
     private static final String KEYWORD_DUPLICATE = "duplicate";
 
     private static final List<String> concerned = Arrays.asList(KEYWORD_TABLE, KEYWORD_INTO, KEYWORD_JOIN, KEYWORD_USING, KEYWORD_UPDATE, KEYWORD_STRAIGHT_JOIN);
@@ -68,7 +68,7 @@ public final class TableNameParser {
      * 5、把 ,() 也要分出来
      */
     private static final Pattern NON_SQL_TOKEN_PATTERN = Pattern.compile("(--[^\\v]+)|;|(\\s+)|((?s)/[*].*?[*]/)"
-            + "|(((\\b|\\B)(?=[,()]))|((?<=[,()])(\\b|\\B)))"
+        + "|(((\\b|\\B)(?=[,()]))|((?<=[,()])(\\b|\\B)))"
     );
 
     private final List<SqlToken> tokens;

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

@@ -174,7 +174,10 @@ public class PaginationInnerInterceptor implements InnerInterceptor {
         IDialect dialect = findIDialect(executor);
 
         final Configuration configuration = ms.getConfiguration();
-        DialectModel model = dialect.buildPaginationSql(buildSql, page.offset(), page.getSize());
+
+        // 计算实际可查询条数 https://github.com/baomidou/mybatis-plus/pull/4882
+        long actualSize = Math.min(page.getTotal() % page.getSize(), page.getSize());
+        DialectModel model = dialect.buildPaginationSql(buildSql, page.offset(), actualSize);
         PluginUtils.MPBoundSql mpBoundSql = PluginUtils.mpBoundSql(boundSql);
 
         List<ParameterMapping> mappings = mpBoundSql.parameterMappings();