提交 3eb4d1ea 编写于 作者: T terrymanu

for #2567, refactor InsertValue.setValue()

上级 5cbd3dac
......@@ -116,15 +116,15 @@ public final class InsertValue {
/**
* Set value.
*
* @param columnName column name
* @param index index
* @param value value
*/
public void setValue(final String columnName, final Object value) {
ExpressionSegment expressionSegment = valueExpressions.get(columnNames.indexOf(columnName));
if (expressionSegment instanceof ParameterMarkerExpressionSegment) {
parameters.set(getParameterIndex(expressionSegment), value);
public void setValue(final int index, final Object value) {
ExpressionSegment valueExpression = valueExpressions.get(index);
if (valueExpression instanceof ParameterMarkerExpressionSegment) {
parameters.set(getParameterIndex(valueExpression), value);
} else {
valueExpressions.set(columnNames.indexOf(columnName), new LiteralExpressionSegment(expressionSegment.getStartIndex(), expressionSegment.getStopIndex(), value));
valueExpressions.set(index, new LiteralExpressionSegment(valueExpression.getStartIndex(), valueExpression.getStopIndex(), value));
}
}
......
......@@ -51,9 +51,9 @@ public final class InsertOptimizedStatementTest {
assertThat(insertClauseOptimizedStatement.getInsertValues().get(0).getDataNodes().size(), is(0));
assertThat(insertClauseOptimizedStatement.getInsertValues().get(0).getValue(1), is((Object) "parameter"));
assertThat(insertClauseOptimizedStatement.getInsertValues().get(0).getValue(2), is((Object) "test"));
insertClauseOptimizedStatement.getInsertValues().get(0).setValue("id", 2);
insertClauseOptimizedStatement.getInsertValues().get(0).setValue(0, 2);
assertThat(insertClauseOptimizedStatement.getInsertValues().get(0).getValue(0), is((Object) 2));
insertClauseOptimizedStatement.getInsertValues().get(0).setValue("value", "parameter1");
insertClauseOptimizedStatement.getInsertValues().get(0).setValue(1, "parameter1");
assertThat(insertClauseOptimizedStatement.getInsertValues().get(0).getValue(1), is((Object) "parameter1"));
}
}
......@@ -128,7 +128,7 @@ public final class SQLRewriteEngine {
private void encryptInsertValue(final EncryptRule encryptRule, final ShardingEncryptor shardingEncryptor,
final String tableName, final int columnIndex, final InsertValue insertValue, final String encryptLogicColumnName) {
Object originalValue = insertValue.getValue(columnIndex);
insertValue.setValue(encryptLogicColumnName, shardingEncryptor.encrypt(originalValue));
insertValue.setValue(columnIndex, shardingEncryptor.encrypt(originalValue));
if (shardingEncryptor instanceof ShardingQueryAssistedEncryptor) {
Optional<String> assistedColumnName = encryptRule.findAssistedQueryColumn(tableName, encryptLogicColumnName);
Preconditions.checkArgument(assistedColumnName.isPresent(), "Can not find assisted query Column Name");
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册