From 229b4782ee2484e3769577c28b4cac8d92e70c06 Mon Sep 17 00:00:00 2001 From: Sam Brannen Date: Mon, 21 Aug 2023 16:01:38 +0200 Subject: [PATCH] Add @Nullable in doSetValue() in Argument[Type]PreparedStatementSetter This commit adds @Nullable to the argValue parameters in the doSetValue() methods in ArgumentPreparedStatementSetter and ArgumentTypePreparedStatementSetter. Closes gh-31086 --- .../jdbc/core/ArgumentPreparedStatementSetter.java | 4 +++- .../jdbc/core/ArgumentTypePreparedStatementSetter.java | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/ArgumentPreparedStatementSetter.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/ArgumentPreparedStatementSetter.java index 847ae4e4805c..2053b3f87a80 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/ArgumentPreparedStatementSetter.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/ArgumentPreparedStatementSetter.java @@ -62,7 +62,9 @@ public void setValues(PreparedStatement ps) throws SQLException { * @param argValue the value to set * @throws SQLException if thrown by PreparedStatement methods */ - protected void doSetValue(PreparedStatement ps, int parameterPosition, Object argValue) throws SQLException { + protected void doSetValue(PreparedStatement ps, int parameterPosition, @Nullable Object argValue) + throws SQLException { + if (argValue instanceof SqlParameterValue paramValue) { StatementCreatorUtils.setParameterValue(ps, parameterPosition, paramValue, paramValue.getValue()); } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/ArgumentTypePreparedStatementSetter.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/ArgumentTypePreparedStatementSetter.java index 2272aa55a7c0..d254dc2c4237 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/ArgumentTypePreparedStatementSetter.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/ArgumentTypePreparedStatementSetter.java @@ -94,7 +94,7 @@ public void setValues(PreparedStatement ps) throws SQLException { * @param argValue the argument value * @throws SQLException if thrown by PreparedStatement methods */ - protected void doSetValue(PreparedStatement ps, int parameterPosition, int argType, Object argValue) + protected void doSetValue(PreparedStatement ps, int parameterPosition, int argType, @Nullable Object argValue) throws SQLException { StatementCreatorUtils.setParameterValue(ps, parameterPosition, argType, argValue);