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

fixed #209 Limit concurrent error

上级 14f31838
......@@ -58,12 +58,11 @@ public class PreparedSQLRouter {
tableRuleOptional = shardingRule.tryFindTableRule(sqlParsedResult.getRouteContext().getTables().iterator().next().getName());
} else {
generateId(parameters);
engine.setParameters(parameters);
for (ConditionContext each : sqlParsedResult.getConditionContexts()) {
each.setNewConditionValue(parameters);
}
}
return engine.routeSQL(sqlParsedResult);
return engine.routeSQL(sqlParsedResult, parameters);
}
private void generateId(final List<Object> parameters) {
......
......@@ -34,7 +34,6 @@ import com.google.common.base.Function;
import com.google.common.collect.Collections2;
import com.google.common.collect.Sets;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
import java.util.Collections;
......@@ -55,9 +54,6 @@ public final class SQLRouteEngine {
private final DatabaseType databaseType;
@Setter
private List<Object> parameters;
/**
* SQL路由.
*
......@@ -70,7 +66,7 @@ public final class SQLRouteEngine {
}
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 {
}
SQLParsedResult parseSQL(final String logicSql, final List<Object> parameters) {
this.parameters = parameters;
Context context = MetricsContext.start("Parse SQL");
SQLParsedResult result = SQLParserFactory.create(databaseType, logicSql, parameters, shardingRule).parse();
MetricsContext.stop(context);
return result;
}
SQLRouteResult routeSQL(final SQLParsedResult parsedResult) {
SQLRouteResult routeSQL(final SQLParsedResult parsedResult, final List<Object> parameters) {
Context context = MetricsContext.start("Route SQL");
SQLRouteResult result = new SQLRouteResult(parsedResult.getRouteContext().getSqlStatementType(), parsedResult.getMergeContext(), parsedResult.getGeneratedKeyContext());
for (ConditionContext each : parsedResult.getConditionContexts()) {
......
......@@ -13,7 +13,8 @@ weight = 1
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 #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
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册