From 46b40bd9dbdfcbb112e27a3ce4c96bfd20bafe45 Mon Sep 17 00:00:00 2001 From: Jens Schauder Date: Mon, 14 Dec 2020 16:14:17 +0100 Subject: [PATCH 1/3] DATAJDBC-620 - Prepare branch --- pom.xml | 2 +- spring-data-jdbc-distribution/pom.xml | 2 +- spring-data-jdbc/pom.xml | 4 ++-- spring-data-relational/pom.xml | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pom.xml b/pom.xml index b230bbb69e..3729c2d643 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ org.springframework.data spring-data-relational-parent - 2.2.0-SNAPSHOT + 2.2.0-DATAJDBC-620-SNAPSHOT pom Spring Data Relational Parent diff --git a/spring-data-jdbc-distribution/pom.xml b/spring-data-jdbc-distribution/pom.xml index a922ef00a2..d3b59be399 100644 --- a/spring-data-jdbc-distribution/pom.xml +++ b/spring-data-jdbc-distribution/pom.xml @@ -14,7 +14,7 @@ org.springframework.data spring-data-relational-parent - 2.2.0-SNAPSHOT + 2.2.0-DATAJDBC-620-SNAPSHOT ../pom.xml diff --git a/spring-data-jdbc/pom.xml b/spring-data-jdbc/pom.xml index 6f04d6b4b0..5d2d09508b 100644 --- a/spring-data-jdbc/pom.xml +++ b/spring-data-jdbc/pom.xml @@ -6,7 +6,7 @@ 4.0.0 spring-data-jdbc - 2.2.0-SNAPSHOT + 2.2.0-DATAJDBC-620-SNAPSHOT Spring Data JDBC Spring Data module for JDBC repositories. @@ -15,7 +15,7 @@ org.springframework.data spring-data-relational-parent - 2.2.0-SNAPSHOT + 2.2.0-DATAJDBC-620-SNAPSHOT diff --git a/spring-data-relational/pom.xml b/spring-data-relational/pom.xml index 6b2507aabe..43e13101e3 100644 --- a/spring-data-relational/pom.xml +++ b/spring-data-relational/pom.xml @@ -6,7 +6,7 @@ 4.0.0 spring-data-relational - 2.2.0-SNAPSHOT + 2.2.0-DATAJDBC-620-SNAPSHOT Spring Data Relational Spring Data Relational support @@ -14,7 +14,7 @@ org.springframework.data spring-data-relational-parent - 2.2.0-SNAPSHOT + 2.2.0-DATAJDBC-620-SNAPSHOT From ef08bc5f91708bde40bc0d4e87bc474f8978c72c Mon Sep 17 00:00:00 2001 From: Jens Schauder Date: Mon, 14 Dec 2020 16:16:34 +0100 Subject: [PATCH 2/3] DATAJDBC-620 - The default RowMapper now gets passed to ResultSetConstructor. --- .../query/StringBasedJdbcQuery.java | 2 +- ...yMappingConfigurationIntegrationTests.java | 29 +++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/query/StringBasedJdbcQuery.java b/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/query/StringBasedJdbcQuery.java index b5ef83bc21..40ce676433 100644 --- a/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/query/StringBasedJdbcQuery.java +++ b/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/query/StringBasedJdbcQuery.java @@ -77,7 +77,7 @@ public StringBasedJdbcQuery(JdbcQueryMethod queryMethod, NamedParameterJdbcOpera RowMapper rowMapper = determineRowMapper(defaultRowMapper); return getQueryExecution( // queryMethod, // - determineResultSetExtractor(rowMapper != defaultRowMapper ? rowMapper : null), // + determineResultSetExtractor(rowMapper), // rowMapper // );}); } diff --git a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/StringBasedJdbcQueryMappingConfigurationIntegrationTests.java b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/StringBasedJdbcQueryMappingConfigurationIntegrationTests.java index 726ecc8b19..f841964b2a 100644 --- a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/StringBasedJdbcQueryMappingConfigurationIntegrationTests.java +++ b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/StringBasedJdbcQueryMappingConfigurationIntegrationTests.java @@ -34,6 +34,7 @@ import org.springframework.context.annotation.Import; import org.springframework.dao.DataAccessException; import org.springframework.data.annotation.Id; +import org.springframework.data.jdbc.core.convert.EntityRowMapper; import org.springframework.data.jdbc.repository.config.DefaultQueryMappingConfiguration; import org.springframework.data.jdbc.repository.config.EnableJdbcRepositories; import org.springframework.data.jdbc.repository.query.Query; @@ -134,6 +135,20 @@ public List extractData(ResultSet rs) throws SQLException, DataAccessExcept } } + public static class RowMapperResultSetExtractor implements ResultSetExtractor { + + final RowMapper rowMapper; + + public RowMapperResultSetExtractor(RowMapper rowMapper) { + this.rowMapper = rowMapper; + } + + @Override + public RowMapper extractData(ResultSet rs) throws SQLException, DataAccessException { + return rowMapper; + } + } + interface CarRepository extends CrudRepository { @Query(value = "select * from car", resultSetExtractorClass = CarResultSetExtractor.class) @@ -144,6 +159,11 @@ interface CarRepository extends CrudRepository { @Query(value = "select model from car", rowMapperRef = "CustomRowMapperBean") List findByNameWithRowMapperBean(); + + + @Query(value = "select * from car", resultSetExtractorClass = RowMapperResultSetExtractor.class) + RowMapper customFindAllWithRowMapper(); + } @Autowired NamedParameterJdbcTemplate template; @@ -179,4 +199,13 @@ public void customFindWithResultSetExtractorBeanSupportingInjection() { assertThat(cars).allMatch(car -> VALUE_PROCESSED_BY_SERVICE.equals(car.getModel())); } + @Test // DATAJDBC-620 + void defaultRowMapperGetsInjectedIntoCustomResultSetExtractor() { + + RowMapper rowMapper = carRepository.customFindAllWithRowMapper(); + + assertThat(rowMapper).isNotNull(); + } + + } From 141210a499ec062440ed5af9bb1b5187a4533c59 Mon Sep 17 00:00:00 2001 From: Jens Schauder Date: Mon, 14 Dec 2020 16:21:55 +0100 Subject: [PATCH 3/3] DATAJDBC-620 - Polishing. Remove public modifier from tests, which is superfluous with JUnit 5. --- ...asedJdbcQueryMappingConfigurationIntegrationTests.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/StringBasedJdbcQueryMappingConfigurationIntegrationTests.java b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/StringBasedJdbcQueryMappingConfigurationIntegrationTests.java index f841964b2a..de9456fb08 100644 --- a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/StringBasedJdbcQueryMappingConfigurationIntegrationTests.java +++ b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/StringBasedJdbcQueryMappingConfigurationIntegrationTests.java @@ -170,7 +170,7 @@ interface CarRepository extends CrudRepository { @Autowired CarRepository carRepository; @Test // DATAJDBC-290 - public void customFindAllCarsUsesConfiguredResultSetExtractor() { + void customFindAllCarsUsesConfiguredResultSetExtractor() { carRepository.save(new Car(null, "Some model")); Iterable cars = carRepository.customFindAll(); @@ -180,7 +180,7 @@ public void customFindAllCarsUsesConfiguredResultSetExtractor() { } @Test // DATAJDBC-430 - public void customFindWithRowMapperBeanSupportingInjection() { + void customFindWithRowMapperBeanSupportingInjection() { carRepository.save(new Car(null, "Some model")); List names = carRepository.findByNameWithRowMapperBean(); @@ -190,7 +190,7 @@ public void customFindWithRowMapperBeanSupportingInjection() { } @Test // DATAJDBC-430 - public void customFindWithResultSetExtractorBeanSupportingInjection() { + void customFindWithResultSetExtractorBeanSupportingInjection() { carRepository.save(new Car(null, "Some model")); Iterable cars = carRepository.findByNameWithResultSetExtractor(); @@ -206,6 +206,4 @@ void defaultRowMapperGetsInjectedIntoCustomResultSetExtractor() { assertThat(rowMapper).isNotNull(); } - - }