This is an automated email from the ASF dual-hosted git repository. asf-gitbox-commits pushed a commit to branch past-M2 in repository https://gitbox.apache.org/repos/asf/cayenne.git
commit 653b6ba9e236b0be3927c7e534e1f46eab157301 Author: Andrus Adamchik <[email protected]> AuthorDate: Sun May 31 10:56:09 2026 -0400 Unifying ParameterBinding hierarchy into a single class and reducing its mutability --- .../apache/cayenne/access/jdbc/BatchAction.java | 18 ++++------ .../apache/cayenne/access/jdbc/SelectAction.java | 4 --- .../access/translator/ParameterBinding.java | 40 ++++++++-------------- .../cayenne/log/CompactSlf4jJdbcEventLogger.java | 4 --- .../apache/cayenne/log/Slf4jJdbcEventLogger.java | 4 --- 5 files changed, 20 insertions(+), 50 deletions(-) diff --git a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java index 19de7fa71..203f07693 100644 --- a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java +++ b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java @@ -55,16 +55,6 @@ public class BatchAction extends BaseSQLAction { protected BatchQuery query; protected RowDescriptor keyRowDescriptor; - private static void bind(DbAdapter adapter, PreparedStatement statement, ParameterBinding[] bindings) - throws Exception { - - for (ParameterBinding b : bindings) { - if (!b.isDisabled()) { - adapter.bindParameter(statement, b); - } - } - } - /** * @since 4.0 */ @@ -132,7 +122,9 @@ public class BatchAction extends BaseSQLAction { ParameterBinding[] bindings = translator.updateBindings(row); logger.logQueryParameters("batch bind", bindings); - bind(adapter, statement, bindings); + for (ParameterBinding b : bindings) { + adapter.bindParameter(statement, b); + } statement.addBatch(); } @@ -192,7 +184,9 @@ public class BatchAction extends BaseSQLAction { ParameterBinding[] bindings = translator.updateBindings(row); logger.logQueryParameters("bind", bindings); - bind(adapter, statement, bindings); + for (ParameterBinding b : bindings) { + adapter.bindParameter(statement, b); + } int updated = statement.executeUpdate(); if (useOptimisticLock && updated != 1) { diff --git a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/SelectAction.java b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/SelectAction.java index 3785f6a66..7553e7aa9 100644 --- a/cayenne/src/main/java/org/apache/cayenne/access/jdbc/SelectAction.java +++ b/cayenne/src/main/java/org/apache/cayenne/access/jdbc/SelectAction.java @@ -48,10 +48,6 @@ public class SelectAction extends BaseSQLAction { for (ParameterBinding b : bindings) { - if (b.isDisabled()) { - continue; - } - // null DbAttributes are a result of inferior qualifier // processing (qualifier can't map parameters to DbAttributes // and therefore only supports standard java types now) hence, a diff --git a/cayenne/src/main/java/org/apache/cayenne/access/translator/ParameterBinding.java b/cayenne/src/main/java/org/apache/cayenne/access/translator/ParameterBinding.java index 64347424e..c37010f0a 100644 --- a/cayenne/src/main/java/org/apache/cayenne/access/translator/ParameterBinding.java +++ b/cayenne/src/main/java/org/apache/cayenne/access/translator/ParameterBinding.java @@ -28,8 +28,6 @@ import org.apache.cayenne.map.DbAttribute; */ public class ParameterBinding { - private static final int EXCLUDED_POSITION = -1; - private final DbAttribute attribute; private final int jdbcType; private final int scale; @@ -52,7 +50,20 @@ public class ParameterBinding { this.attribute = attribute; this.jdbcType = jdbcType; this.scale = scale; - this.statementPosition = EXCLUDED_POSITION; + + this.statementPosition = -1; + } + + /** + * Sets the value, statement position and {@link ExtendedType} of the binding. + * + * @since 5.0 + */ + public ParameterBinding reset(int statementPosition, Object value, ExtendedType<?> extendedType) { + this.statementPosition = statementPosition; + this.value = value; + this.extendedType = extendedType; + return this; } public Object getValue() { @@ -63,33 +74,10 @@ public class ParameterBinding { return statementPosition; } - public boolean isDisabled() { - return statementPosition == EXCLUDED_POSITION; - } - public ExtendedType getExtendedType() { return extendedType; } - /** - * Marks the binding object as excluded for the current iteration. - */ - public void disable() { - this.statementPosition = EXCLUDED_POSITION; - this.value = null; - this.extendedType = null; - } - - /** - * Sets the value, statement position and {@link ExtendedType} of the binding. - */ - public ParameterBinding reset(int statementPosition, Object value, ExtendedType<?> extendedType) { - this.statementPosition = statementPosition; - this.value = value; - this.extendedType = extendedType; - return this; - } - public int getJdbcType() { return jdbcType; } diff --git a/cayenne/src/main/java/org/apache/cayenne/log/CompactSlf4jJdbcEventLogger.java b/cayenne/src/main/java/org/apache/cayenne/log/CompactSlf4jJdbcEventLogger.java index 407c81cfb..c28c37f97 100644 --- a/cayenne/src/main/java/org/apache/cayenne/log/CompactSlf4jJdbcEventLogger.java +++ b/cayenne/src/main/java/org/apache/cayenne/log/CompactSlf4jJdbcEventLogger.java @@ -112,10 +112,6 @@ public class CompactSlf4jJdbcEventLogger extends Slf4jJdbcEventLogger { String key = null; String value; for (ParameterBinding b : bindings) { - if (b.isDisabled()) { - continue; - } - DbAttribute attribute = b.getAttribute(); if (attribute != null) { key = attribute.getName(); diff --git a/cayenne/src/main/java/org/apache/cayenne/log/Slf4jJdbcEventLogger.java b/cayenne/src/main/java/org/apache/cayenne/log/Slf4jJdbcEventLogger.java index 217fd287f..474cfc278 100644 --- a/cayenne/src/main/java/org/apache/cayenne/log/Slf4jJdbcEventLogger.java +++ b/cayenne/src/main/java/org/apache/cayenne/log/Slf4jJdbcEventLogger.java @@ -100,10 +100,6 @@ public class Slf4jJdbcEventLogger implements JdbcEventLogger { for (int i = 0, j = 1; i < len; i++) { ParameterBinding b = bindings[i]; - if (b.isDisabled()) { - continue; - } - if (hasIncluded) { buffer.append(", "); } else {
