提交 3eed43bf 编写于 作者: G gaohongtao

fixed #209 Limit concurrent error

上级 14f31838
...@@ -58,12 +58,11 @@ public class PreparedSQLRouter { ...@@ -58,12 +58,11 @@ public class PreparedSQLRouter {
tableRuleOptional = shardingRule.tryFindTableRule(sqlParsedResult.getRouteContext().getTables().iterator().next().getName()); tableRuleOptional = shardingRule.tryFindTableRule(sqlParsedResult.getRouteContext().getTables().iterator().next().getName());
} else { } else {
generateId(parameters); generateId(parameters);
engine.setParameters(parameters);
for (ConditionContext each : sqlParsedResult.getConditionContexts()) { for (ConditionContext each : sqlParsedResult.getConditionContexts()) {
each.setNewConditionValue(parameters); each.setNewConditionValue(parameters);
} }
} }
return engine.routeSQL(sqlParsedResult); return engine.routeSQL(sqlParsedResult, parameters);
} }
private void generateId(final List<Object> parameters) { private void generateId(final List<Object> parameters) {
......
...@@ -34,7 +34,6 @@ import com.google.common.base.Function; ...@@ -34,7 +34,6 @@ import com.google.common.base.Function;
import com.google.common.collect.Collections2; import com.google.common.collect.Collections2;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import java.util.Collections; import java.util.Collections;
...@@ -55,9 +54,6 @@ public final class SQLRouteEngine { ...@@ -55,9 +54,6 @@ public final class SQLRouteEngine {
private final DatabaseType databaseType; private final DatabaseType databaseType;
@Setter
private List<Object> parameters;
/** /**
* SQL路由. * SQL路由.
* *
...@@ -70,7 +66,7 @@ public final class SQLRouteEngine { ...@@ -70,7 +66,7 @@ public final class SQLRouteEngine {
} }
SQLRouteResult route(final String logicSql, final List<Object> parameters) throws SQLParserException { SQLRouteResult route(final String logicSql, final List<Object> parameters) throws SQLParserException {
return routeSQL(parseSQL(logicSql, parameters)); return routeSQL(parseSQL(logicSql, parameters), parameters);
} }
/** /**
...@@ -84,14 +80,13 @@ public final class SQLRouteEngine { ...@@ -84,14 +80,13 @@ public final class SQLRouteEngine {
} }
SQLParsedResult parseSQL(final String logicSql, final List<Object> parameters) { SQLParsedResult parseSQL(final String logicSql, final List<Object> parameters) {
this.parameters = parameters;
Context context = MetricsContext.start("Parse SQL"); Context context = MetricsContext.start("Parse SQL");
SQLParsedResult result = SQLParserFactory.create(databaseType, logicSql, parameters, shardingRule).parse(); SQLParsedResult result = SQLParserFactory.create(databaseType, logicSql, parameters, shardingRule).parse();
MetricsContext.stop(context); MetricsContext.stop(context);
return result; return result;
} }
SQLRouteResult routeSQL(final SQLParsedResult parsedResult) { SQLRouteResult routeSQL(final SQLParsedResult parsedResult, final List<Object> parameters) {
Context context = MetricsContext.start("Route SQL"); Context context = MetricsContext.start("Route SQL");
SQLRouteResult result = new SQLRouteResult(parsedResult.getRouteContext().getSqlStatementType(), parsedResult.getMergeContext(), parsedResult.getGeneratedKeyContext()); SQLRouteResult result = new SQLRouteResult(parsedResult.getRouteContext().getSqlStatementType(), parsedResult.getMergeContext(), parsedResult.getGeneratedKeyContext());
for (ConditionContext each : parsedResult.getConditionContexts()) { for (ConditionContext each : parsedResult.getConditionContexts()) {
......
...@@ -13,7 +13,8 @@ weight = 1 ...@@ -13,7 +13,8 @@ weight = 1
1. [ISSUE #194](https://github.com/dangdangdotcom/sharding-jdbc/issues/194) jdbc接口中资源释放错误 1. [ISSUE #194](https://github.com/dangdangdotcom/sharding-jdbc/issues/194) jdbc接口中资源释放错误
1. [ISSUE #199](https://github.com/dangdangdotcom/sharding-jdbc/issues/199) 分表且复用PreparedStatement对象造成数据路由错误 1. [ISSUE #199](https://github.com/dangdangdotcom/sharding-jdbc/issues/199) 分表且复用PreparedStatement对象造成数据路由错误
1. [ISSUE #201](https://github.com/dangdangdotcom/sharding-jdbc/issues/201) 批量操作执行前事件发送缺失 1. [ISSUE #201](https://github.com/dangdangdotcom/sharding-jdbc/issues/201) 批量操作执行前事件发送缺失
1. [ISSUE #203](https://github.com/dangdangdotcom/sharding-jdbc/issues/201) 合并batch操作发送的事件 1. [ISSUE #203](https://github.com/dangdangdotcom/sharding-jdbc/issues/203) 合并batch操作发送的事件
1. [ISSUE #209](https://github.com/dangdangdotcom/sharding-jdbc/issues/209) limit并行异常
## 1.4.0 ## 1.4.0
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册