From 6647c165dafb3a9f29f61274a25fe85a7c7d7998 Mon Sep 17 00:00:00 2001 From: Yanming Zhou Date: Thu, 27 Feb 2025 11:11:10 +0800 Subject: [PATCH] Fix "rowsExpected" of SqlQuery is unused Signed-off-by: Yanming Zhou --- .../org/springframework/jdbc/object/SqlQuery.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/object/SqlQuery.java b/spring-jdbc/src/main/java/org/springframework/jdbc/object/SqlQuery.java index 88084cc62d4a..692720b2cbee 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/object/SqlQuery.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/object/SqlQuery.java @@ -26,9 +26,11 @@ import org.springframework.dao.DataAccessException; import org.springframework.dao.support.DataAccessUtils; import org.springframework.jdbc.core.RowMapper; +import org.springframework.jdbc.core.RowMapperResultSetExtractor; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; import org.springframework.jdbc.core.namedparam.NamedParameterUtils; import org.springframework.jdbc.core.namedparam.ParsedSql; +import org.springframework.util.Assert; /** * Reusable operation object representing an SQL query. @@ -112,7 +114,10 @@ public int getRowsExpected() { public List execute(Object @Nullable [] params, @Nullable Map context) throws DataAccessException { validateParameters(params); RowMapper rowMapper = newRowMapper(params, context); - return getJdbcTemplate().query(newPreparedStatementCreator(params), rowMapper); + List result = getJdbcTemplate().query(newPreparedStatementCreator(params), + new RowMapperResultSetExtractor<>(rowMapper, getRowsExpected())); + Assert.state(result != null, "No result"); + return result; } /** @@ -229,7 +234,10 @@ public List executeByNamedParam(Map paramMap, @Nullable Map String sqlToUse = NamedParameterUtils.substituteNamedParameters(parsedSql, paramSource); @Nullable Object[] params = NamedParameterUtils.buildValueArray(parsedSql, paramSource, getDeclaredParameters()); RowMapper rowMapper = newRowMapper(params, context); - return getJdbcTemplate().query(newPreparedStatementCreator(sqlToUse, params), rowMapper); + List result = getJdbcTemplate().query(newPreparedStatementCreator(sqlToUse, params), + new RowMapperResultSetExtractor<>(rowMapper, getRowsExpected())); + Assert.state(result != null, "No result"); + return result; } /**