From 49c0f9fa4415842e76e04d51debc78316763bf77 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Tue, 19 Nov 2024 10:10:09 +0100 Subject: [PATCH 01/11] Prepare next development iteration. See #1943 --- pom.xml | 2 +- spring-data-jdbc-distribution/pom.xml | 2 +- spring-data-jdbc/pom.xml | 4 ++-- spring-data-r2dbc/pom.xml | 4 ++-- spring-data-relational/pom.xml | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/pom.xml b/pom.xml index aceb2aab0a8..d4f9a5a4f46 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ org.springframework.data spring-data-relational-parent - 3.5.0-SNAPSHOT + 4.0.0-SNAPSHOT pom Spring Data Relational Parent diff --git a/spring-data-jdbc-distribution/pom.xml b/spring-data-jdbc-distribution/pom.xml index 9c02f506086..b3c39e64c34 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 - 3.5.0-SNAPSHOT + 4.0.0-SNAPSHOT ../pom.xml diff --git a/spring-data-jdbc/pom.xml b/spring-data-jdbc/pom.xml index aba16d9e30c..7feb323a3cd 100644 --- a/spring-data-jdbc/pom.xml +++ b/spring-data-jdbc/pom.xml @@ -6,7 +6,7 @@ 4.0.0 spring-data-jdbc - 3.5.0-SNAPSHOT + 4.0.0-SNAPSHOT Spring Data JDBC Spring Data module for JDBC repositories. @@ -15,7 +15,7 @@ org.springframework.data spring-data-relational-parent - 3.5.0-SNAPSHOT + 4.0.0-SNAPSHOT diff --git a/spring-data-r2dbc/pom.xml b/spring-data-r2dbc/pom.xml index fd450fd21b0..b0f91578357 100644 --- a/spring-data-r2dbc/pom.xml +++ b/spring-data-r2dbc/pom.xml @@ -6,7 +6,7 @@ 4.0.0 spring-data-r2dbc - 3.5.0-SNAPSHOT + 4.0.0-SNAPSHOT Spring Data R2DBC Spring Data module for R2DBC @@ -15,7 +15,7 @@ org.springframework.data spring-data-relational-parent - 3.5.0-SNAPSHOT + 4.0.0-SNAPSHOT diff --git a/spring-data-relational/pom.xml b/spring-data-relational/pom.xml index 9760a0f1e7a..8fd6d7a6f0e 100644 --- a/spring-data-relational/pom.xml +++ b/spring-data-relational/pom.xml @@ -6,7 +6,7 @@ 4.0.0 spring-data-relational - 3.5.0-SNAPSHOT + 4.0.0-SNAPSHOT Spring Data Relational Spring Data Relational support @@ -14,7 +14,7 @@ org.springframework.data spring-data-relational-parent - 3.5.0-SNAPSHOT + 4.0.0-SNAPSHOT From 95386b3cdf4b35ed89893cb638b6443520654024 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Tue, 19 Nov 2024 10:10:10 +0100 Subject: [PATCH 02/11] After release cleanups. See #1943 --- Jenkinsfile | 2 +- pom.xml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 8919ba10f47..8b0dcdd33c1 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -9,7 +9,7 @@ pipeline { triggers { pollSCM 'H/10 * * * *' - upstream(upstreamProjects: "spring-data-commons/main", threshold: hudson.model.Result.SUCCESS) + upstream(upstreamProjects: "spring-data-commons/4.0.x", threshold: hudson.model.Result.SUCCESS) } options { diff --git a/pom.xml b/pom.xml index d4f9a5a4f46..5848fcee6dc 100644 --- a/pom.xml +++ b/pom.xml @@ -16,12 +16,12 @@ org.springframework.data.build spring-data-parent - 3.5.0-SNAPSHOT + 4.0.0-SNAPSHOT spring-data-jdbc - 3.5.0-SNAPSHOT + 4.0.0-SNAPSHOT 4.21.1 reuseReports From e954be0881b19985cb58757ef1ca5f811c5ae2d1 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Tue, 19 Nov 2024 15:10:19 +0100 Subject: [PATCH 03/11] Adopt to deprecation removals in Commons. Closes #1944 --- .../query/StringBasedJdbcQuery.java | 71 +------------------ .../JdbcRepositoryIntegrationTests.java | 10 +-- .../JdbcQueryLookupStrategyUnitTests.java | 2 - .../data/jdbc/testing/TestConfiguration.java | 17 ++--- .../query/R2dbcParameterAccessor.java | 5 +- .../query/StringBasedR2dbcQuery.java | 56 ++------------- .../support/R2dbcRepositoryFactory.java | 14 ++-- .../support/R2dbcRepositoryFactoryBean.java | 10 --- ...sitoryConfigurationExtensionUnitTests.java | 2 +- .../EmbeddedRelationalPersistentEntity.java | 7 -- 10 files changed, 32 insertions(+), 162 deletions(-) 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 89df22fd754..31e0e92b5d4 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 @@ -30,9 +30,7 @@ import org.springframework.beans.BeanInstantiationException; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.BeanFactory; -import org.springframework.core.env.StandardEnvironment; import org.springframework.data.expression.ValueEvaluationContext; -import org.springframework.data.expression.ValueExpressionParser; import org.springframework.data.jdbc.core.convert.JdbcColumnTypes; import org.springframework.data.jdbc.core.convert.JdbcConverter; import org.springframework.data.jdbc.core.mapping.JdbcValue; @@ -40,11 +38,8 @@ import org.springframework.data.relational.core.mapping.RelationalMappingContext; import org.springframework.data.relational.repository.query.RelationalParameterAccessor; import org.springframework.data.relational.repository.query.RelationalParametersParameterAccessor; -import org.springframework.data.repository.query.CachingValueExpressionDelegate; import org.springframework.data.repository.query.Parameter; import org.springframework.data.repository.query.Parameters; -import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider; -import org.springframework.data.repository.query.QueryMethodValueEvaluationContextAccessor; import org.springframework.data.repository.query.ResultProcessor; import org.springframework.data.repository.query.ValueExpressionDelegate; import org.springframework.data.repository.query.ValueExpressionQueryRewriter; @@ -87,43 +82,6 @@ public class StringBasedJdbcQuery extends AbstractJdbcQuery { private final CachedResultSetExtractorFactory cachedResultSetExtractorFactory; private final ValueExpressionDelegate delegate; - /** - * Creates a new {@link StringBasedJdbcQuery} for the given {@link JdbcQueryMethod}, {@link RelationalMappingContext} - * and {@link RowMapper}. - * - * @param queryMethod must not be {@literal null}. - * @param operations must not be {@literal null}. - * @param defaultRowMapper can be {@literal null} (only in case of a modifying query). - * @deprecated since 3.4, use the constructors accepting {@link ValueExpressionDelegate} instead. - */ - @Deprecated(since = "3.4") - public StringBasedJdbcQuery(JdbcQueryMethod queryMethod, NamedParameterJdbcOperations operations, - @Nullable RowMapper defaultRowMapper, JdbcConverter converter, - QueryMethodEvaluationContextProvider evaluationContextProvider) { - this(queryMethod.getRequiredQuery(), queryMethod, operations, result -> (RowMapper) defaultRowMapper, - converter, evaluationContextProvider); - } - - /** - * Creates a new {@link StringBasedJdbcQuery} for the given {@link JdbcQueryMethod}, {@link RelationalMappingContext} - * and {@link RowMapperFactory}. - * - * @param queryMethod must not be {@literal null}. - * @param operations must not be {@literal null}. - * @param rowMapperFactory must not be {@literal null}. - * @param converter must not be {@literal null}. - * @param evaluationContextProvider must not be {@literal null}. - * @since 2.3 - * @deprecated use alternative constructor - */ - @Deprecated(since = "3.4") - public StringBasedJdbcQuery(JdbcQueryMethod queryMethod, NamedParameterJdbcOperations operations, - RowMapperFactory rowMapperFactory, JdbcConverter converter, - QueryMethodEvaluationContextProvider evaluationContextProvider) { - this(queryMethod.getRequiredQuery(), queryMethod, operations, rowMapperFactory, converter, - evaluationContextProvider); - } - /** * Creates a new {@link StringBasedJdbcQuery} for the given {@link JdbcQueryMethod}, {@link RelationalMappingContext} * and {@link RowMapperFactory}. @@ -136,8 +94,7 @@ public StringBasedJdbcQuery(JdbcQueryMethod queryMethod, NamedParameterJdbcOpera * @since 3.4 */ public StringBasedJdbcQuery(JdbcQueryMethod queryMethod, NamedParameterJdbcOperations operations, - RowMapperFactory rowMapperFactory, JdbcConverter converter, - ValueExpressionDelegate delegate) { + RowMapperFactory rowMapperFactory, JdbcConverter converter, ValueExpressionDelegate delegate) { this(queryMethod.getRequiredQuery(), queryMethod, operations, rowMapperFactory, converter, delegate); } @@ -154,8 +111,7 @@ public StringBasedJdbcQuery(JdbcQueryMethod queryMethod, NamedParameterJdbcOpera * @since 3.4 */ public StringBasedJdbcQuery(String query, JdbcQueryMethod queryMethod, NamedParameterJdbcOperations operations, - RowMapperFactory rowMapperFactory, JdbcConverter converter, - ValueExpressionDelegate delegate) { + RowMapperFactory rowMapperFactory, JdbcConverter converter, ValueExpressionDelegate delegate) { super(queryMethod, operations); Assert.hasText(query, "Query must not be null or empty"); Assert.notNull(rowMapperFactory, "RowMapperFactory must not be null"); @@ -191,29 +147,6 @@ public StringBasedJdbcQuery(String query, JdbcQueryMethod queryMethod, NamedPara this.delegate = delegate; } - /** - * Creates a new {@link StringBasedJdbcQuery} for the given {@link JdbcQueryMethod}, {@link RelationalMappingContext} - * and {@link RowMapperFactory}. - * - * @param query must not be {@literal null} or empty. - * @param queryMethod must not be {@literal null}. - * @param operations must not be {@literal null}. - * @param rowMapperFactory must not be {@literal null}. - * @param converter must not be {@literal null}. - * @param evaluationContextProvider must not be {@literal null}. - * @since 3.4 - * @deprecated since 3.4, use the constructors accepting {@link ValueExpressionDelegate} instead. - */ - @Deprecated(since = "3.4") - public StringBasedJdbcQuery(String query, JdbcQueryMethod queryMethod, NamedParameterJdbcOperations operations, - RowMapperFactory rowMapperFactory, JdbcConverter converter, - QueryMethodEvaluationContextProvider evaluationContextProvider) { - this(query, queryMethod, operations, rowMapperFactory, converter, new CachingValueExpressionDelegate( - new QueryMethodValueEvaluationContextAccessor(new StandardEnvironment(), rootObject -> evaluationContextProvider - .getEvaluationContext(queryMethod.getParameters(), new Object[] { rootObject })), - ValueExpressionParser.create())); - } - @Override public Object execute(Object[] objects) { diff --git a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryIntegrationTests.java b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryIntegrationTests.java index 7c854b823fa..3f54716cecb 100644 --- a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryIntegrationTests.java +++ b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryIntegrationTests.java @@ -75,11 +75,11 @@ import org.springframework.data.repository.core.NamedQueries; import org.springframework.data.repository.core.support.PropertiesBasedNamedQueries; import org.springframework.data.repository.core.support.RepositoryFactoryCustomizer; -import org.springframework.data.repository.query.ExtensionAwareQueryMethodEvaluationContextProvider; import org.springframework.data.repository.query.FluentQuery; import org.springframework.data.repository.query.Param; import org.springframework.data.repository.query.QueryByExampleExecutor; -import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider; +import org.springframework.data.spel.EvaluationContextProvider; +import org.springframework.data.spel.ExtensionAwareEvaluationContextProvider; import org.springframework.data.spel.spi.EvaluationContextExtension; import org.springframework.data.support.WindowIterator; import org.springframework.data.util.Streamable; @@ -1573,12 +1573,12 @@ MyEventListener eventListener() { } @Bean - public QueryMethodEvaluationContextProvider extensionAware(List exts) { - return new ExtensionAwareQueryMethodEvaluationContextProvider(exts); + public EvaluationContextProvider extensionAware(List exts) { + return new ExtensionAwareEvaluationContextProvider(exts); } @Bean - RepositoryFactoryCustomizer customizer(QueryMethodEvaluationContextProvider provider) { + RepositoryFactoryCustomizer customizer(EvaluationContextProvider provider) { return repositoryFactory -> repositoryFactory.setEvaluationContextProvider(provider); } diff --git a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/support/JdbcQueryLookupStrategyUnitTests.java b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/support/JdbcQueryLookupStrategyUnitTests.java index 7b70956890f..114df1e3053 100644 --- a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/support/JdbcQueryLookupStrategyUnitTests.java +++ b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/support/JdbcQueryLookupStrategyUnitTests.java @@ -40,7 +40,6 @@ import org.springframework.data.repository.core.NamedQueries; import org.springframework.data.repository.core.RepositoryMetadata; import org.springframework.data.repository.query.QueryLookupStrategy; -import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider; import org.springframework.data.repository.query.RepositoryQuery; import org.springframework.data.repository.query.ValueExpressionDelegate; import org.springframework.data.util.TypeInformation; @@ -72,7 +71,6 @@ class JdbcQueryLookupStrategyUnitTests { private RepositoryMetadata metadata; private NamedQueries namedQueries = mock(NamedQueries.class); private NamedParameterJdbcOperations operations = mock(NamedParameterJdbcOperations.class); - QueryMethodEvaluationContextProvider evaluationContextProvider = mock(QueryMethodEvaluationContextProvider.class); @BeforeEach void setup() { diff --git a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/testing/TestConfiguration.java b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/testing/TestConfiguration.java index 63db08a0cce..15ef88283e3 100644 --- a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/testing/TestConfiguration.java +++ b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/testing/TestConfiguration.java @@ -50,7 +50,7 @@ import org.springframework.data.relational.core.mapping.NamingStrategy; import org.springframework.data.relational.core.mapping.RelationalMappingContext; import org.springframework.data.repository.core.NamedQueries; -import org.springframework.data.repository.query.ExtensionAwareQueryMethodEvaluationContextProvider; +import org.springframework.data.spel.ExtensionAwareEvaluationContextProvider; import org.springframework.data.spel.spi.EvaluationContextExtension; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcOperations; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; @@ -97,8 +97,7 @@ JdbcRepositoryFactory jdbcRepositoryFactory( namedQueries.map(it -> it.iterator().next()).ifPresent(factory::setNamedQueries); - factory.setEvaluationContextProvider( - new ExtensionAwareQueryMethodEvaluationContextProvider(evaulationContextExtensions)); + factory.setEvaluationContextProvider(new ExtensionAwareEvaluationContextProvider(evaulationContextExtensions)); return factory; } @@ -118,22 +117,24 @@ DataAccessStrategy defaultDataAccessStrategy( @Qualifier("namedParameterJdbcTemplate") NamedParameterJdbcOperations template, RelationalMappingContext context, JdbcConverter converter, Dialect dialect) { - return new DataAccessStrategyFactory(new SqlGeneratorSource(context, converter, dialect), converter, - template, new SqlParametersFactory(context, converter), - new InsertStrategyFactory(template, dialect)).create(); + return new DataAccessStrategyFactory(new SqlGeneratorSource(context, converter, dialect), converter, template, + new SqlParametersFactory(context, converter), new InsertStrategyFactory(template, dialect)).create(); } @Bean("jdbcMappingContext") @Profile(PROFILE_NO_SINGLE_QUERY_LOADING) - JdbcMappingContext jdbcMappingContextWithOutSingleQueryLoading(Optional namingStrategy, CustomConversions conversions) { + JdbcMappingContext jdbcMappingContextWithOutSingleQueryLoading(Optional namingStrategy, + CustomConversions conversions) { JdbcMappingContext mappingContext = new JdbcMappingContext(namingStrategy.orElse(DefaultNamingStrategy.INSTANCE)); mappingContext.setSimpleTypeHolder(conversions.getSimpleTypeHolder()); return mappingContext; } + @Bean("jdbcMappingContext") @Profile(PROFILE_SINGLE_QUERY_LOADING) - JdbcMappingContext jdbcMappingContextWithSingleQueryLoading(Optional namingStrategy, CustomConversions conversions) { + JdbcMappingContext jdbcMappingContextWithSingleQueryLoading(Optional namingStrategy, + CustomConversions conversions) { JdbcMappingContext mappingContext = new JdbcMappingContext(namingStrategy.orElse(DefaultNamingStrategy.INSTANCE)); mappingContext.setSimpleTypeHolder(conversions.getSimpleTypeHolder()); diff --git a/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/repository/query/R2dbcParameterAccessor.java b/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/repository/query/R2dbcParameterAccessor.java index 744140b317b..95ecebc6154 100644 --- a/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/repository/query/R2dbcParameterAccessor.java +++ b/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/repository/query/R2dbcParameterAccessor.java @@ -15,7 +15,6 @@ */ package org.springframework.data.r2dbc.repository.query; -import org.reactivestreams.Publisher; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; @@ -25,9 +24,11 @@ import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; +import org.reactivestreams.Publisher; + import org.springframework.data.relational.repository.query.RelationalParametersParameterAccessor; import org.springframework.data.repository.util.ReactiveWrapperConverters; -import org.springframework.data.repository.util.ReactiveWrappers; +import org.springframework.data.util.ReactiveWrappers; /** * Reactive {@link org.springframework.data.repository.query.ParametersParameterAccessor} implementation that subscribes diff --git a/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/repository/query/StringBasedR2dbcQuery.java b/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/repository/query/StringBasedR2dbcQuery.java index a72aa6dafa0..0519a55634e 100644 --- a/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/repository/query/StringBasedR2dbcQuery.java +++ b/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/repository/query/StringBasedR2dbcQuery.java @@ -22,24 +22,18 @@ import java.util.List; import java.util.Map; -import org.springframework.core.env.StandardEnvironment; import org.springframework.data.expression.ReactiveValueEvaluationContextProvider; import org.springframework.data.expression.ValueEvaluationContext; import org.springframework.data.expression.ValueEvaluationContextProvider; -import org.springframework.data.expression.ValueExpressionParser; import org.springframework.data.r2dbc.convert.R2dbcConverter; import org.springframework.data.r2dbc.core.R2dbcEntityOperations; import org.springframework.data.r2dbc.core.ReactiveDataAccessStrategy; import org.springframework.data.r2dbc.dialect.BindTargetBinder; import org.springframework.data.r2dbc.repository.Query; import org.springframework.data.relational.repository.query.RelationalParameterAccessor; -import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider; -import org.springframework.data.repository.query.QueryMethodValueEvaluationContextAccessor; -import org.springframework.data.repository.query.ReactiveQueryMethodEvaluationContextProvider; import org.springframework.data.repository.query.ResultProcessor; import org.springframework.data.repository.query.ValueExpressionDelegate; import org.springframework.data.spel.ExpressionDependencies; -import org.springframework.expression.ExpressionParser; import org.springframework.expression.spel.standard.SpelExpressionParser; import org.springframework.r2dbc.core.DatabaseClient; import org.springframework.r2dbc.core.Parameter; @@ -64,46 +58,6 @@ public class StringBasedR2dbcQuery extends AbstractR2dbcQuery { private final ReactiveDataAccessStrategy dataAccessStrategy; private final ReactiveValueEvaluationContextProvider valueContextProvider; - /** - * Creates a new {@link StringBasedR2dbcQuery} for the given {@link StringBasedR2dbcQuery}, {@link DatabaseClient}, - * {@link SpelExpressionParser}, and {@link QueryMethodEvaluationContextProvider}. - * - * @param queryMethod must not be {@literal null}. - * @param entityOperations must not be {@literal null}. - * @param converter must not be {@literal null}. - * @param dataAccessStrategy must not be {@literal null}. - * @param expressionParser must not be {@literal null}. - * @param evaluationContextProvider must not be {@literal null}. - * @deprecated use the constructor version with {@link ValueExpressionDelegate} - */ - @Deprecated(since = "3.4") - public StringBasedR2dbcQuery(R2dbcQueryMethod queryMethod, R2dbcEntityOperations entityOperations, - R2dbcConverter converter, ReactiveDataAccessStrategy dataAccessStrategy, ExpressionParser expressionParser, - ReactiveQueryMethodEvaluationContextProvider evaluationContextProvider) { - this(queryMethod.getRequiredAnnotatedQuery(), queryMethod, entityOperations, converter, dataAccessStrategy, - expressionParser, evaluationContextProvider); - } - - /** - * Create a new {@link StringBasedR2dbcQuery} for the given {@code query}, {@link R2dbcQueryMethod}, - * {@link DatabaseClient}, {@link SpelExpressionParser}, and {@link QueryMethodEvaluationContextProvider}. - * - * @param query must not be {@literal null}. - * @param method must not be {@literal null}. - * @param entityOperations must not be {@literal null}. - * @param converter must not be {@literal null}. - * @param dataAccessStrategy must not be {@literal null}. - * @param expressionParser must not be {@literal null}. - * @param evaluationContextProvider must not be {@literal null}. - * @deprecated use the constructor version with {@link ValueExpressionDelegate} - */ - @Deprecated(since = "3.4") - public StringBasedR2dbcQuery(String query, R2dbcQueryMethod method, R2dbcEntityOperations entityOperations, - R2dbcConverter converter, ReactiveDataAccessStrategy dataAccessStrategy, ExpressionParser expressionParser, - ReactiveQueryMethodEvaluationContextProvider evaluationContextProvider) { - this(query, method, entityOperations, converter, dataAccessStrategy, new ValueExpressionDelegate(new QueryMethodValueEvaluationContextAccessor(new StandardEnvironment(), evaluationContextProvider.getEvaluationContextProvider()), ValueExpressionParser.create(() -> expressionParser))); - } - /** * Create a new {@link StringBasedR2dbcQuery} for the given {@code query}, {@link R2dbcQueryMethod}, * {@link DatabaseClient}, {@link SpelExpressionParser}, and {@link QueryMethodEvaluationContextProvider}. @@ -115,8 +69,10 @@ public StringBasedR2dbcQuery(String query, R2dbcQueryMethod method, R2dbcEntityO * @param valueExpressionDelegate must not be {@literal null}. */ public StringBasedR2dbcQuery(R2dbcQueryMethod method, R2dbcEntityOperations entityOperations, - R2dbcConverter converter, ReactiveDataAccessStrategy dataAccessStrategy, ValueExpressionDelegate valueExpressionDelegate) { - this(method.getRequiredAnnotatedQuery(), method, entityOperations, converter, dataAccessStrategy, valueExpressionDelegate); + R2dbcConverter converter, ReactiveDataAccessStrategy dataAccessStrategy, + ValueExpressionDelegate valueExpressionDelegate) { + this(method.getRequiredAnnotatedQuery(), method, entityOperations, converter, dataAccessStrategy, + valueExpressionDelegate); } /** @@ -130,7 +86,8 @@ public StringBasedR2dbcQuery(R2dbcQueryMethod method, R2dbcEntityOperations enti * @param valueExpressionDelegate must not be {@literal null}. */ public StringBasedR2dbcQuery(String query, R2dbcQueryMethod method, R2dbcEntityOperations entityOperations, - R2dbcConverter converter, ReactiveDataAccessStrategy dataAccessStrategy, ValueExpressionDelegate valueExpressionDelegate) { + R2dbcConverter converter, ReactiveDataAccessStrategy dataAccessStrategy, + ValueExpressionDelegate valueExpressionDelegate) { super(method, entityOperations, converter); @@ -148,7 +105,6 @@ public StringBasedR2dbcQuery(String query, R2dbcQueryMethod method, R2dbcEntityO this.valueContextProvider = (ReactiveValueEvaluationContextProvider) valueContextProvider; this.expressionDependencies = createExpressionDependencies(); - if (method.isSliceQuery()) { throw new UnsupportedOperationException( "Slice queries are not supported using string-based queries; Offending method: " + method); diff --git a/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/repository/support/R2dbcRepositoryFactory.java b/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/repository/support/R2dbcRepositoryFactory.java index 3540cfcd98c..ff9110592b9 100644 --- a/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/repository/support/R2dbcRepositoryFactory.java +++ b/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/repository/support/R2dbcRepositoryFactory.java @@ -40,7 +40,6 @@ import org.springframework.data.repository.query.CachingValueExpressionDelegate; import org.springframework.data.repository.query.QueryLookupStrategy; import org.springframework.data.repository.query.QueryLookupStrategy.Key; -import org.springframework.data.repository.query.ReactiveQueryMethodEvaluationContextProvider; import org.springframework.data.repository.query.RepositoryQuery; import org.springframework.data.repository.query.ValueExpressionDelegate; import org.springframework.lang.Nullable; @@ -78,7 +77,6 @@ public R2dbcRepositoryFactory(DatabaseClient databaseClient, ReactiveDataAccessS this.converter = dataAccessStrategy.getConverter(); this.mappingContext = this.converter.getMappingContext(); this.operations = new R2dbcEntityTemplate(this.databaseClient, this.dataAccessStrategy); - setEvaluationContextProvider(ReactiveQueryMethodEvaluationContextProvider.DEFAULT); } /** @@ -96,7 +94,6 @@ public R2dbcRepositoryFactory(R2dbcEntityOperations operations) { this.converter = dataAccessStrategy.getConverter(); this.mappingContext = this.converter.getMappingContext(); this.operations = operations; - setEvaluationContextProvider(ReactiveQueryMethodEvaluationContextProvider.DEFAULT); } @Override @@ -116,7 +113,8 @@ protected Object getTargetRepository(RepositoryInformation information) { @Override protected Optional getQueryLookupStrategy(@Nullable Key key, ValueExpressionDelegate valueExpressionDelegate) { - return Optional.of(new R2dbcQueryLookupStrategy(operations, new CachingValueExpressionDelegate(valueExpressionDelegate), converter, dataAccessStrategy)); + return Optional.of(new R2dbcQueryLookupStrategy(operations, + new CachingValueExpressionDelegate(valueExpressionDelegate), converter, dataAccessStrategy)); } public RelationalEntityInformation getEntityInformation(Class domainClass) { @@ -145,9 +143,8 @@ private static class R2dbcQueryLookupStrategy extends RelationalQueryLookupStrat private final ValueExpressionDelegate delegate; private final ReactiveDataAccessStrategy dataAccessStrategy; - R2dbcQueryLookupStrategy(R2dbcEntityOperations entityOperations, - ValueExpressionDelegate delegate, R2dbcConverter converter, - ReactiveDataAccessStrategy dataAccessStrategy) { + R2dbcQueryLookupStrategy(R2dbcEntityOperations entityOperations, ValueExpressionDelegate delegate, + R2dbcConverter converter, ReactiveDataAccessStrategy dataAccessStrategy) { super(converter.getMappingContext(), dataAccessStrategy.getDialect()); this.delegate = delegate; @@ -169,7 +166,8 @@ public RepositoryQuery resolveQuery(Method method, RepositoryMetadata metadata, : queryMethod.getRequiredAnnotatedQuery(); query = evaluateTableExpressions(metadata, query); - return new StringBasedR2dbcQuery(query, queryMethod, this.entityOperations, this.converter, this.dataAccessStrategy, this.delegate); + return new StringBasedR2dbcQuery(query, queryMethod, this.entityOperations, this.converter, + this.dataAccessStrategy, this.delegate); } else { return new PartTreeR2dbcQuery(queryMethod, this.entityOperations, this.converter, this.dataAccessStrategy); diff --git a/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/repository/support/R2dbcRepositoryFactoryBean.java b/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/repository/support/R2dbcRepositoryFactoryBean.java index 827cbc1c498..9f02fba47fd 100644 --- a/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/repository/support/R2dbcRepositoryFactoryBean.java +++ b/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/repository/support/R2dbcRepositoryFactoryBean.java @@ -16,10 +16,8 @@ package org.springframework.data.r2dbc.repository.support; import java.io.Serializable; -import java.util.Optional; import org.springframework.beans.BeansException; -import org.springframework.beans.factory.ListableBeanFactory; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.data.mapping.context.MappingContext; @@ -29,8 +27,6 @@ import org.springframework.data.repository.Repository; import org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport; import org.springframework.data.repository.core.support.RepositoryFactorySupport; -import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider; -import org.springframework.data.repository.query.ReactiveExtensionAwareQueryMethodEvaluationContextProvider; import org.springframework.lang.Nullable; import org.springframework.r2dbc.core.DatabaseClient; import org.springframework.util.Assert; @@ -98,12 +94,6 @@ protected final RepositoryFactorySupport createRepositoryFactory() { : getFactoryInstance(this.client, this.dataAccessStrategy); } - @Override - protected Optional createDefaultQueryMethodEvaluationContextProvider( - ListableBeanFactory beanFactory) { - return Optional.of(new ReactiveExtensionAwareQueryMethodEvaluationContextProvider(beanFactory)); - } - /** * Creates and initializes a {@link RepositoryFactorySupport} instance. * diff --git a/spring-data-r2dbc/src/test/java/org/springframework/data/r2dbc/repository/config/R2dbcRepositoryConfigurationExtensionUnitTests.java b/spring-data-r2dbc/src/test/java/org/springframework/data/r2dbc/repository/config/R2dbcRepositoryConfigurationExtensionUnitTests.java index 5ae04ba37f3..187d90d0453 100644 --- a/spring-data-r2dbc/src/test/java/org/springframework/data/r2dbc/repository/config/R2dbcRepositoryConfigurationExtensionUnitTests.java +++ b/spring-data-r2dbc/src/test/java/org/springframework/data/r2dbc/repository/config/R2dbcRepositoryConfigurationExtensionUnitTests.java @@ -49,7 +49,7 @@ class R2dbcRepositoryConfigurationExtensionUnitTests { private final BeanDefinitionRegistry registry = new DefaultListableBeanFactory(); private final RepositoryConfigurationSource configurationSource = new AnnotationRepositoryConfigurationSource( - metadata, EnableR2dbcRepositories.class, loader, environment, registry); + metadata, EnableR2dbcRepositories.class, loader, environment, registry, null); @Test // gh-13 void isStrictMatchIfDomainTypeIsAnnotatedWithDocument() { diff --git a/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/EmbeddedRelationalPersistentEntity.java b/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/EmbeddedRelationalPersistentEntity.java index 5e23e1d51a1..4ef9744b6b7 100644 --- a/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/EmbeddedRelationalPersistentEntity.java +++ b/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/EmbeddedRelationalPersistentEntity.java @@ -112,13 +112,6 @@ public String getName() { return delegate.getName(); } - @Override - @Deprecated - @Nullable - public PreferredConstructor getPersistenceConstructor() { - return delegate.getPersistenceConstructor(); - } - @Override @Nullable public InstanceCreatorMetadata getInstanceCreatorMetadata() { From 74a769cd039cf59e5bf315e1ea225d4c223aea71 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Wed, 20 Nov 2024 10:43:27 +0100 Subject: [PATCH 04/11] Polishing. Fix invalid Javadoc references. See #1944 --- .../data/r2dbc/repository/query/StringBasedR2dbcQuery.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/repository/query/StringBasedR2dbcQuery.java b/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/repository/query/StringBasedR2dbcQuery.java index 0519a55634e..fe0a6ccc0b6 100644 --- a/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/repository/query/StringBasedR2dbcQuery.java +++ b/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/repository/query/StringBasedR2dbcQuery.java @@ -34,7 +34,6 @@ import org.springframework.data.repository.query.ResultProcessor; import org.springframework.data.repository.query.ValueExpressionDelegate; import org.springframework.data.spel.ExpressionDependencies; -import org.springframework.expression.spel.standard.SpelExpressionParser; import org.springframework.r2dbc.core.DatabaseClient; import org.springframework.r2dbc.core.Parameter; import org.springframework.r2dbc.core.PreparedOperation; @@ -60,7 +59,7 @@ public class StringBasedR2dbcQuery extends AbstractR2dbcQuery { /** * Create a new {@link StringBasedR2dbcQuery} for the given {@code query}, {@link R2dbcQueryMethod}, - * {@link DatabaseClient}, {@link SpelExpressionParser}, and {@link QueryMethodEvaluationContextProvider}. + * {@link DatabaseClient}, and {@link ValueExpressionDelegate}. * * @param method must not be {@literal null}. * @param entityOperations must not be {@literal null}. @@ -77,7 +76,7 @@ public StringBasedR2dbcQuery(R2dbcQueryMethod method, R2dbcEntityOperations enti /** * Create a new {@link StringBasedR2dbcQuery} for the given {@code query}, {@link R2dbcQueryMethod}, - * {@link DatabaseClient}, {@link SpelExpressionParser}, and {@link QueryMethodEvaluationContextProvider}. + * {@link DatabaseClient}, and {@link ValueExpressionDelegate}. * * @param method must not be {@literal null}. * @param entityOperations must not be {@literal null}. From dd2ca8830829fcc2345c631362980daaa461126e Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Mon, 25 Nov 2024 08:43:18 +0100 Subject: [PATCH 05/11] Adopt to deprecation removals in Commons. See #1944 --- .../data/r2dbc/repository/query/R2dbcQueryMethod.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/repository/query/R2dbcQueryMethod.java b/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/repository/query/R2dbcQueryMethod.java index f210ed90c7b..f4d1401970c 100644 --- a/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/repository/query/R2dbcQueryMethod.java +++ b/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/repository/query/R2dbcQueryMethod.java @@ -15,8 +15,6 @@ */ package org.springframework.data.r2dbc.repository.query; -import static org.springframework.data.repository.util.ClassUtils.*; - import java.lang.reflect.Method; import java.util.Optional; @@ -89,7 +87,7 @@ public R2dbcQueryMethod(Method method, RepositoryMetadata metadata, ProjectionFa this.mappingContext = mappingContext; - if (hasParameterOfType(method, Pageable.class)) { + if (ReflectionUtils.hasParameterOfType(method, Pageable.class)) { TypeInformation returnType = TypeInformation.fromReturnTypeOf(method); @@ -110,7 +108,7 @@ public R2dbcQueryMethod(Method method, RepositoryMetadata metadata, ProjectionFa method.toString())); } - if (hasParameterOfType(method, Sort.class)) { + if (ReflectionUtils.hasParameterOfType(method, Sort.class)) { throw new IllegalStateException(String.format("Method must not have Pageable *and* Sort parameter; " + "Use sorting capabilities on Pageable instead; Offending method: %s", method.toString())); } From a5c76179f601e404065b19481bc6da79a015a6e1 Mon Sep 17 00:00:00 2001 From: Christoph Strobl Date: Fri, 24 Jan 2025 10:48:00 +0100 Subject: [PATCH 06/11] Prepare 4.0 M1 (2025.1.0). See #1943 --- pom.xml | 20 ++++---------------- src/main/resources/notice.txt | 3 ++- 2 files changed, 6 insertions(+), 17 deletions(-) diff --git a/pom.xml b/pom.xml index 5848fcee6dc..d23cf52fc42 100644 --- a/pom.xml +++ b/pom.xml @@ -16,12 +16,12 @@ org.springframework.data.build spring-data-parent - 4.0.0-SNAPSHOT + 4.0.0-M1 spring-data-jdbc - 4.0.0-SNAPSHOT + 4.0.0-M1 4.21.1 reuseReports @@ -312,20 +312,8 @@ - - spring-snapshot - https://repo.spring.io/snapshot - - true - - - false - - - - spring-milestone - https://repo.spring.io/milestone - + + diff --git a/src/main/resources/notice.txt b/src/main/resources/notice.txt index ad56ace3001..1ea6885b356 100644 --- a/src/main/resources/notice.txt +++ b/src/main/resources/notice.txt @@ -1,4 +1,4 @@ -Spring Data Relational 3.4 GA (2024.1.0) +Spring Data Relational 4.0 M1 (2025.1.0) Copyright (c) [2017-2019] Pivotal Software, Inc. This product is licensed to you under the Apache License, Version 2.0 (the "License"). @@ -56,5 +56,6 @@ conditions of the subcomponent's license, as noted in the LICENSE file. + From 212d8ed867bc23733170da91c14354e3425c04a8 Mon Sep 17 00:00:00 2001 From: Christoph Strobl Date: Fri, 24 Jan 2025 10:48:56 +0100 Subject: [PATCH 07/11] Release version 4.0 M1 (2025.1.0). See #1943 --- pom.xml | 2 +- spring-data-jdbc-distribution/pom.xml | 2 +- spring-data-jdbc/pom.xml | 4 ++-- spring-data-r2dbc/pom.xml | 4 ++-- spring-data-relational/pom.xml | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/pom.xml b/pom.xml index d23cf52fc42..57f7d088059 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ org.springframework.data spring-data-relational-parent - 4.0.0-SNAPSHOT + 4.0.0-M1 pom Spring Data Relational Parent diff --git a/spring-data-jdbc-distribution/pom.xml b/spring-data-jdbc-distribution/pom.xml index b3c39e64c34..11a76143d46 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 - 4.0.0-SNAPSHOT + 4.0.0-M1 ../pom.xml diff --git a/spring-data-jdbc/pom.xml b/spring-data-jdbc/pom.xml index 7feb323a3cd..33968a250b6 100644 --- a/spring-data-jdbc/pom.xml +++ b/spring-data-jdbc/pom.xml @@ -6,7 +6,7 @@ 4.0.0 spring-data-jdbc - 4.0.0-SNAPSHOT + 4.0.0-M1 Spring Data JDBC Spring Data module for JDBC repositories. @@ -15,7 +15,7 @@ org.springframework.data spring-data-relational-parent - 4.0.0-SNAPSHOT + 4.0.0-M1 diff --git a/spring-data-r2dbc/pom.xml b/spring-data-r2dbc/pom.xml index b0f91578357..c131febed84 100644 --- a/spring-data-r2dbc/pom.xml +++ b/spring-data-r2dbc/pom.xml @@ -6,7 +6,7 @@ 4.0.0 spring-data-r2dbc - 4.0.0-SNAPSHOT + 4.0.0-M1 Spring Data R2DBC Spring Data module for R2DBC @@ -15,7 +15,7 @@ org.springframework.data spring-data-relational-parent - 4.0.0-SNAPSHOT + 4.0.0-M1 diff --git a/spring-data-relational/pom.xml b/spring-data-relational/pom.xml index 8fd6d7a6f0e..d3ecbf9fc6c 100644 --- a/spring-data-relational/pom.xml +++ b/spring-data-relational/pom.xml @@ -6,7 +6,7 @@ 4.0.0 spring-data-relational - 4.0.0-SNAPSHOT + 4.0.0-M1 Spring Data Relational Spring Data Relational support @@ -14,7 +14,7 @@ org.springframework.data spring-data-relational-parent - 4.0.0-SNAPSHOT + 4.0.0-M1 From e3515187ff18b9e106e9776839ea37e2bc745d0a Mon Sep 17 00:00:00 2001 From: Christoph Strobl Date: Fri, 24 Jan 2025 10:53:10 +0100 Subject: [PATCH 08/11] Prepare next development iteration. See #1943 --- pom.xml | 2 +- spring-data-jdbc-distribution/pom.xml | 2 +- spring-data-jdbc/pom.xml | 4 ++-- spring-data-r2dbc/pom.xml | 4 ++-- spring-data-relational/pom.xml | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/pom.xml b/pom.xml index 57f7d088059..d23cf52fc42 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ org.springframework.data spring-data-relational-parent - 4.0.0-M1 + 4.0.0-SNAPSHOT pom Spring Data Relational Parent diff --git a/spring-data-jdbc-distribution/pom.xml b/spring-data-jdbc-distribution/pom.xml index 11a76143d46..b3c39e64c34 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 - 4.0.0-M1 + 4.0.0-SNAPSHOT ../pom.xml diff --git a/spring-data-jdbc/pom.xml b/spring-data-jdbc/pom.xml index 33968a250b6..7feb323a3cd 100644 --- a/spring-data-jdbc/pom.xml +++ b/spring-data-jdbc/pom.xml @@ -6,7 +6,7 @@ 4.0.0 spring-data-jdbc - 4.0.0-M1 + 4.0.0-SNAPSHOT Spring Data JDBC Spring Data module for JDBC repositories. @@ -15,7 +15,7 @@ org.springframework.data spring-data-relational-parent - 4.0.0-M1 + 4.0.0-SNAPSHOT diff --git a/spring-data-r2dbc/pom.xml b/spring-data-r2dbc/pom.xml index c131febed84..b0f91578357 100644 --- a/spring-data-r2dbc/pom.xml +++ b/spring-data-r2dbc/pom.xml @@ -6,7 +6,7 @@ 4.0.0 spring-data-r2dbc - 4.0.0-M1 + 4.0.0-SNAPSHOT Spring Data R2DBC Spring Data module for R2DBC @@ -15,7 +15,7 @@ org.springframework.data spring-data-relational-parent - 4.0.0-M1 + 4.0.0-SNAPSHOT diff --git a/spring-data-relational/pom.xml b/spring-data-relational/pom.xml index d3ecbf9fc6c..8fd6d7a6f0e 100644 --- a/spring-data-relational/pom.xml +++ b/spring-data-relational/pom.xml @@ -6,7 +6,7 @@ 4.0.0 spring-data-relational - 4.0.0-M1 + 4.0.0-SNAPSHOT Spring Data Relational Spring Data Relational support @@ -14,7 +14,7 @@ org.springframework.data spring-data-relational-parent - 4.0.0-M1 + 4.0.0-SNAPSHOT From e24469e86133e7dee2c0797ba282c3ec17fd18d4 Mon Sep 17 00:00:00 2001 From: Christoph Strobl Date: Fri, 24 Jan 2025 10:53:12 +0100 Subject: [PATCH 09/11] After release cleanups. See #1943 --- pom.xml | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index d23cf52fc42..5848fcee6dc 100644 --- a/pom.xml +++ b/pom.xml @@ -16,12 +16,12 @@ org.springframework.data.build spring-data-parent - 4.0.0-M1 + 4.0.0-SNAPSHOT spring-data-jdbc - 4.0.0-M1 + 4.0.0-SNAPSHOT 4.21.1 reuseReports @@ -312,8 +312,20 @@ - - + + spring-snapshot + https://repo.spring.io/snapshot + + true + + + false + + + + spring-milestone + https://repo.spring.io/milestone + From f309a0bb76d688f541594689ca2da5f5b0ad7487 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Mon, 10 Feb 2025 14:15:46 +0100 Subject: [PATCH 10/11] Refine generic boundaries. Kotlin reacts to JSpecify with increased nullability requirements. See #1980 --- .../jdbc/core/JdbcAggregateOperationsExtensions.kt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/spring-data-jdbc/src/main/kotlin/org/springframework/data/jdbc/core/JdbcAggregateOperationsExtensions.kt b/spring-data-jdbc/src/main/kotlin/org/springframework/data/jdbc/core/JdbcAggregateOperationsExtensions.kt index b1b7fcd26d5..c0a46a20ead 100644 --- a/spring-data-jdbc/src/main/kotlin/org/springframework/data/jdbc/core/JdbcAggregateOperationsExtensions.kt +++ b/spring-data-jdbc/src/main/kotlin/org/springframework/data/jdbc/core/JdbcAggregateOperationsExtensions.kt @@ -20,7 +20,7 @@ import org.springframework.data.domain.Page import org.springframework.data.domain.Pageable import org.springframework.data.domain.Sort import org.springframework.data.relational.core.query.Query -import java.util.Optional +import java.util.* /** * Kotlin extensions for [JdbcAggregateOperations]. @@ -80,7 +80,7 @@ inline fun JdbcAggregateOperations.findAll(sort: Sort): List = /** * Extension for [JdbcAggregateOperations.findAll] with pagination. */ -inline fun JdbcAggregateOperations.findAll(pageable: Pageable): Page = +inline fun JdbcAggregateOperations.findAll(pageable: Pageable): Page = findAll(T::class.java, pageable) /** @@ -98,7 +98,10 @@ inline fun JdbcAggregateOperations.findAll(query: Query): List = /** * Extension for [JdbcAggregateOperations.findAll] with query and pagination. */ -inline fun JdbcAggregateOperations.findAll(query: Query, pageable: Pageable): Page = +inline fun JdbcAggregateOperations.findAll( + query: Query, + pageable: Pageable +): Page = findAll(query, T::class.java, pageable) /** @@ -117,4 +120,4 @@ inline fun JdbcAggregateOperations.deleteAllById(ids: Iterable<*>): * Extension for [JdbcAggregateOperations.deleteAll]. */ inline fun JdbcAggregateOperations.deleteAll(): Unit = - deleteAll(T::class.java) \ No newline at end of file + deleteAll(T::class.java) From 1bead3a47e9e5e1e7a3a9861ab2853bbf396844a Mon Sep 17 00:00:00 2001 From: luckygc Date: Tue, 11 Feb 2025 10:36:44 +0800 Subject: [PATCH 11/11] Fix grammar error in SqlGenerator.java Signed-off-by: luckygc --- .../data/jdbc/core/convert/SqlGenerator.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/core/convert/SqlGenerator.java b/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/core/convert/SqlGenerator.java index cf173ff570a..7ac637e8c35 100644 --- a/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/core/convert/SqlGenerator.java +++ b/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/core/convert/SqlGenerator.java @@ -69,7 +69,7 @@ class SqlGenerator { /** * Length of an aggregate path that is one longer then the root path. */ - private static final int FIRST_NON_ROOT_LENTH = 2; + private static final int FIRST_NON_ROOT_LENGTH = 2; private final RelationalPersistentEntity entity; private final RelationalMappingContext mappingContext; @@ -131,7 +131,7 @@ class SqlGenerator { * @return If the given path is considered deeply nested. */ private static boolean isFirstNonRoot(AggregatePath path) { - return path.getLength() == FIRST_NON_ROOT_LENTH; + return path.getLength() == FIRST_NON_ROOT_LENGTH; } /** @@ -148,7 +148,7 @@ private static boolean isFirstNonRoot(AggregatePath path) { * @return If the given path is considered deeply nested. */ private static boolean isDeeplyNested(AggregatePath path) { - return path.getLength() > FIRST_NON_ROOT_LENTH; + return path.getLength() > FIRST_NON_ROOT_LENGTH; } /**