Caratacus %!s(int64=8) %!d(string=hai) anos
pai
achega
6b7604d6e0

+ 3 - 11
mybatis-plus/src/main/java/com/baomidou/mybatisplus/plugins/PaginationInterceptor.java

@@ -97,11 +97,7 @@ public class PaginationInterceptor implements Interceptor {
 			}
 
 			/*
-			 * <p>
-			 * 禁用内存分页
-			 * </p>
-			 * <p>
-			 * 内存分页会查询所有结果出来处理(这个很吓人的),如果结果变化频繁这个数据还会不准。
+			 * <p> 禁用内存分页 </p> <p> 内存分页会查询所有结果出来处理(这个很吓人的),如果结果变化频繁这个数据还会不准。
 			 * </p>
 			 */
 			BoundSql boundSql = (BoundSql) metaStatementHandler.getValue("delegate.boundSql");
@@ -135,12 +131,8 @@ public class PaginationInterceptor implements Interceptor {
 					}
 				}
 				/* 执行 SQL */
-				StringBuffer buildSql = new StringBuffer(originalSql);
-				if (orderBy && StringUtils.isNotEmpty(page.getOrderByField())) {
-					buildSql.append(" ORDER BY ").append(page.getOrderByField());
-					buildSql.append(page.isAsc() ? " ASC " : " DESC ");
-				}
-				originalSql = dialect.buildPaginationSql(buildSql.toString(), page.getOffsetCurrent(), page.getSize());
+				String buildSql = SqlUtils.concatOrderBy(originalSql, page, orderBy);
+				originalSql = dialect.buildPaginationSql(buildSql, page.getOffsetCurrent(), page.getSize());
 			}
 
 			/**

+ 21 - 1
mybatis-plus/src/main/java/com/baomidou/mybatisplus/toolkit/SqlUtils.java

@@ -1,7 +1,7 @@
 package com.baomidou.mybatisplus.toolkit;
 
-
 import com.baomidou.mybatisplus.plugins.entity.CountOptimize;
+import com.baomidou.mybatisplus.plugins.pagination.Pagination;
 
 /**
  * <p>
@@ -52,4 +52,24 @@ public class SqlUtils {
 		countOptimize.setCountSQL(countSql.toString());
 		return countOptimize;
 	}
+
+	/**
+	 * 查询SQL拼接Order By
+	 * 
+	 * @param originalSql
+	 *            需要拼接的SQL
+	 * @param page
+	 *            page对象
+	 * @param orderBy
+	 *            是否需要拼接Order By
+	 * @return
+	 */
+	public static String concatOrderBy(String originalSql, Pagination page, boolean orderBy) {
+		StringBuffer buildSql = new StringBuffer(originalSql);
+		if (orderBy && StringUtils.isNotEmpty(page.getOrderByField())) {
+			buildSql.append(" ORDER BY ").append(page.getOrderByField());
+			buildSql.append(page.isAsc() ? " ASC " : " DESC ");
+		}
+		return buildSql.toString();
+	}
 }