Skip to content

Spring Data 2025.1 Release Notes

Mark Paluch edited this page Nov 19, 2024 · 7 revisions

General Themes

  • Upgrade to Spring Framework 7

  • Upgrade to Jakarta EE 11 (JPA 3.2, Servlet 6.1)

  • Upgrade to Kotlin 2.0

  • Strong use of JPQL in JPA

  • Removal of ListenableFuture support

Participating Modules

Details

New and Noteworthy

Spring Data Commons - 4.0

Removal of ListenableFuture support

With Spring Framework removing support for ListenableFuture, we’re removing support for ListenableFuture as well. Please use CompletableFuture when using @Async query methods.

Removal of deprecated API

PersistenceConstructor Migration

  • Removal of @PersistenceConstructor in favor of @PersistenceCreator

  • Removal of Parameter.hasSpelExpression() in favor of hasValueExpression().

  • Removal of PersistentEntity.getPersistenceConstructor() in favor of PersistentEntity.getInstanceCreatorMetadata() and isConstructorArgument(…) in favor of isCreatorArgument(…).

  • Removal of PreferredConstructor.isConstructorParameter(…) isCreatorParameter(…).

  • Removal of MappingInstantiationException.getConstructor(…) in favor of getEntityCreator().

SpEL to Value Expression Migration

  • Removal of DefaultSpELExpressionEvaluator and SpELExpressionEvaluator in favor of ValueExpressionEvaluator.

  • Removal of SpELExpressionParameterValueProvider in favor of ValueExpressionParameterValueProvider.

  • Removal of ValueExpressionParameterValueProvider.potentiallyConvertSpelValue(…) in favor of potentiallyConvertExpressionValue(…).

  • Removed ExtensionAwareQueryMethodEvaluationContextProvider, QueryMethodEvaluationContextProvider and their reactive variants in favor of Value Expression support. QueryMethodValueEvaluationContextAccessor.createEvaluationContextProvider(beanFactory) can help to create default instances.

  • Removed SpelEvaluator and SpelQueryContext in favor of ValueExpressionQueryRewriter

QueryMethod Parameters Revision

  • Removed QueryMethod.createParameters(Method method, TypeInformation<?> domainType) in favor of createParameters(ParametersSource parametersSource)

  • Removal of Parameter(MethodParameter parameter) and Parameters(Method method, Function<MethodParameter, T> parameterFactory).

Other Changes

  • Removal of PersistentPropertyPath.getRequiredLeafProperty() in favor of getLeafProperty().

  • QPageRequest constructors are private now, use of factory methods.

  • Removal of AnnotationRepositoryConfigurationSource constructor

  • Removal of RepositoryFactorySupport.getTargetRepositoryViaReflection(…), use instantiateClass(…) instead.

  • Removed PagedResourcesAssembler.getMethodParameter(…) without replacement

  • Removed org.springframework.data.repository.util.ReactiveWrappers in favor of the variant in the org.springframework.data.util package.

  • ClassTypeInformation was made package-protected. Obtain instances of TypeInformation using the appropriate factory methods on TypeInformation.

  • Removal of the org.springframework.data.type.classreading package in favor of Spring’s AnnotationMetadata.

Spring Data JPA - 4.0

Spring Data Relational - 4.0

Spring Data MongoDB - 5.0

Spring Data Neo4j - 8.0

Spring Data Elasticsearch - 6.0

Spring Data Couchbase - 6.0

Spring Data for Apache Cassandra - 5.0

Removal of ListenableFuture support

With Spring Framework removing support for ListenableFuture, we’re removing support for ListenableFuture as well. Packages org.springframework.data.cassandra.core.cql.legacy and o.s.d.c.core.legacy are removed. Use asynchronous template API implementations and their utilities from o.s.d.c.core.cql respective o.s.d.c.core.

Spring Data Redis - 4.0

Spring Data KeyValue - 4.0

Spring Data REST - 5.0

Spring Data LDAP - 4.0

Release Dates

  • M1 - December 2024

  • M2 - January 2025

  • M3 - March 2025

  • M4 - May 2025

  • M5 - July 2025

  • RC1 - Sept 2025

  • RC2 - Oct 2025

  • GA - Nov 2025

  • OSS Support until: May 2025

  • End of Life: Sept 2026

Clone this wiki locally