@@ -112,12 +112,12 @@ public interface DatabaseClient {
|
||||
/**
|
||||
* Configures {@link NamedParameterExpander}.
|
||||
*
|
||||
* @param namedParameters must not be {@literal null}.
|
||||
* @param expander must not be {@literal null}.
|
||||
* @return {@code this} {@link Builder}.
|
||||
* @see NamedParameterExpander#enabled()
|
||||
* @see NamedParameterExpander#disabled()
|
||||
*/
|
||||
Builder namedParameters(NamedParameterExpander namedParameters);
|
||||
Builder namedParameters(NamedParameterExpander expander);
|
||||
|
||||
/**
|
||||
* Configures a {@link Consumer} to configure this builder.
|
||||
|
||||
@@ -254,14 +254,11 @@ class DefaultDatabaseClient implements DatabaseClient, ConnectionAccessor {
|
||||
private static void doBind(Statement<?> statement, Map<String, SettableValue> byName,
|
||||
Map<Integer, SettableValue> byIndex) {
|
||||
|
||||
byIndex.forEach((i, o) -> {
|
||||
bindByIndex(statement, byIndex);
|
||||
bindByName(statement, byName);
|
||||
}
|
||||
|
||||
if (o.getValue() != null) {
|
||||
statement.bind(i.intValue(), o.getValue());
|
||||
} else {
|
||||
statement.bindNull(i.intValue(), o.getType());
|
||||
}
|
||||
});
|
||||
private static void bindByName(Statement<?> statement, Map<String, SettableValue> byName) {
|
||||
|
||||
byName.forEach((name, o) -> {
|
||||
|
||||
@@ -273,6 +270,18 @@ class DefaultDatabaseClient implements DatabaseClient, ConnectionAccessor {
|
||||
});
|
||||
}
|
||||
|
||||
private static void bindByIndex(Statement<?> statement, Map<Integer, SettableValue> byIndex) {
|
||||
|
||||
byIndex.forEach((i, o) -> {
|
||||
|
||||
if (o.getValue() != null) {
|
||||
statement.bind(i.intValue(), o.getValue());
|
||||
} else {
|
||||
statement.bindNull(i.intValue(), o.getType());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Default {@link DatabaseClient.SqlSpec} implementation.
|
||||
*/
|
||||
@@ -340,7 +349,7 @@ class DefaultDatabaseClient implements DatabaseClient, ConnectionAccessor {
|
||||
}
|
||||
});
|
||||
|
||||
doBind(statement, Collections.emptyMap(), byIndex);
|
||||
bindByIndex(statement, byIndex);
|
||||
|
||||
return statement;
|
||||
};
|
||||
|
||||
@@ -96,11 +96,11 @@ class DefaultDatabaseClientBuilder implements DatabaseClient.Builder {
|
||||
* @see org.springframework.data.r2dbc.function.DatabaseClient.Builder#namedParameters(org.springframework.data.r2dbc.function.NamedParameterExpander)
|
||||
*/
|
||||
@Override
|
||||
public Builder namedParameters(NamedParameterExpander namedParameters) {
|
||||
public Builder namedParameters(NamedParameterExpander expander) {
|
||||
|
||||
Assert.notNull(namedParameters, "NamedParameterExpander must not be null!");
|
||||
Assert.notNull(expander, "NamedParameterExpander must not be null!");
|
||||
|
||||
this.namedParameters = namedParameters;
|
||||
this.namedParameters = expander;
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
@@ -73,8 +73,8 @@ class DefaultTransactionalDatabaseClientBuilder extends DefaultDatabaseClientBui
|
||||
* @see org.springframework.data.r2dbc.function.DefaultDatabaseClientBuilder#dataAccessStrategy(org.springframework.data.r2dbc.function.NamedParameterSupport)
|
||||
*/
|
||||
@Override
|
||||
public TransactionalDatabaseClient.Builder namedParameters(NamedParameterExpander namedParameters) {
|
||||
super.namedParameters(namedParameters);
|
||||
public TransactionalDatabaseClient.Builder namedParameters(NamedParameterExpander expander) {
|
||||
super.namedParameters(expander);
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
@@ -162,16 +162,6 @@ abstract class NamedParameterUtils {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if (c == '?') {
|
||||
int j = i + 1;
|
||||
if (j < statement.length && (statement[j] == '?' || statement[j] == '|' || statement[j] == '&')) {
|
||||
// Postgres-style "??", "?|", "?&" operator should be skipped
|
||||
i = i + 2;
|
||||
continue;
|
||||
}
|
||||
unnamedParameterCount++;
|
||||
totalParameterCount++;
|
||||
}
|
||||
}
|
||||
i++;
|
||||
}
|
||||
|
||||
@@ -192,12 +192,12 @@ public interface TransactionalDatabaseClient extends DatabaseClient {
|
||||
/**
|
||||
* Configures {@link NamedParameterExpander}.
|
||||
*
|
||||
* @param namedParameters must not be {@literal null}.
|
||||
* @param expander must not be {@literal null}.
|
||||
* @return {@code this} {@link Builder}.
|
||||
* @see NamedParameterExpander#enabled()
|
||||
* @see NamedParameterExpander#disabled()
|
||||
*/
|
||||
Builder namedParameters(NamedParameterExpander namedParameters);
|
||||
Builder namedParameters(NamedParameterExpander expander);
|
||||
|
||||
/**
|
||||
* Configures a {@link Consumer} to configure this builder.
|
||||
|
||||
Reference in New Issue
Block a user