diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 36fddbd6b48c5..ce3fb12aafb81 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -5,6 +5,7 @@ 1. [ISSUE #356](https://github.com/dangdangdotcom/sharding-jdbc/issues/356) 在SQL的Where条件中兼容不是分片列的REGEXP操作符 1. [ISSUE #362](https://github.com/dangdangdotcom/sharding-jdbc/issues/362) 读写分离使用PreparedStatement并未调用setParameter方法导致出错 1. [ISSUE #370](https://github.com/dangdangdotcom/sharding-jdbc/issues/370) 使用原生自增主键调用getGeneratedKeys出错 +1. [ISSUE #375](https://github.com/dangdangdotcom/sharding-jdbc/issues/375) 路由至单节点的分页第二页以后的查询取不到数据 ## 1.5.3 diff --git a/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/context/limit/Limit.java b/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/context/limit/Limit.java index bc7eb1ae18bca..c261a0a27da33 100644 --- a/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/context/limit/Limit.java +++ b/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/context/limit/Limit.java @@ -66,14 +66,11 @@ public int getRowCountValue() { * Fill parameters for rewrite limit. * * @param parameters parameters - * @param isRewrite is rewrite or not * @param isFetchAll is fetch all data or not */ - public void processParameters(final List parameters, final boolean isRewrite, final boolean isFetchAll) { + public void processParameters(final List parameters, final boolean isFetchAll) { fill(parameters); - if (isRewrite) { - rewrite(parameters, isFetchAll); - } + rewrite(parameters, isFetchAll); } private void fill(final List parameters) { diff --git a/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/routing/router/ParsingSQLRouter.java b/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/routing/router/ParsingSQLRouter.java index efc6c80c8d66f..6be7e69c7b355 100644 --- a/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/routing/router/ParsingSQLRouter.java +++ b/sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/routing/router/ParsingSQLRouter.java @@ -137,7 +137,11 @@ private void setGeneratedKeys(final SQLRouteResult sqlRouteResult, final Number } private void processLimit(final List parameters, final SelectStatement selectStatement, final boolean isSingleRouting) { + if (isSingleRouting) { + selectStatement.setLimit(null); + return; + } boolean isNeedFetchAll = (!selectStatement.getGroupByItems().isEmpty() || !selectStatement.getAggregationSelectItems().isEmpty()) && !selectStatement.isSameGroupByAndOrderByItems(); - selectStatement.getLimit().processParameters(parameters, !isSingleRouting, isNeedFetchAll); + selectStatement.getLimit().processParameters(parameters, isNeedFetchAll); } }