Skip to content

Spring Data 2025.0 Release Notes

Mark Paluch edited this page Feb 13, 2025 · 5 revisions

General Themes

  • Vector abstraction to represent AI embeddings

Participating Modules

Details

New and Noteworthy

Spring Data Commons - 3.5

Mark pure Repository SpEL Components for Removal

After introducing support for Value Expressions, we now no longer require components that only support SpEL without following the newly introduced Value Expressions API. Therefore, we’re deprecating QueryMethodEvaluationContextProvider (and its reactive variants), and SpelEvaluator for removal in the next major release.

Please migrate off this API towards their Value Expression replacements.

Spring Data JPA - 3.5

Spring Data Relational - 3.5

Spring Data MongoDB - 4.5

Spring Data Neo4j - 7.5

Spring Data Elasticsearch - 5.5

Spring Data Couchbase - 5.5

Spring Data for Apache Cassandra - 4.5

Upgrade to Cassandra 5

We’ve upgraded the Cassandra driver to version 4.19 and we’re building against Cassandra 5.0.

Support for Storage-Attached Indexes

Spring Data Cassandra ships with support for Storage-Attached Indexes. Specifically, we provide programmatic interfaces to specify and generate CQL for CREATE INDEX … USING 'sai' and the @SaiIndexed annotation for text and vector index definitions.

Vector Search support

With introducing the Spring Data Vector type, we now allow using vector data types in mapped entities. We support both, Cassandra’s CqlVector and our Vector type to insert and query for vector data. Cassandra uses vectors in queries for similarity and ordering.

@Table
class CommentSearch {

	String comment;

	float similarity;
}

@Table
class Comments {

	@Id UUID id;
	String comment;

	@VectorType(dimensions = 5)
	@SaiIndexed Vector vector;
}

Vector vector = Vector.of(/* from your Embedding */);
Columns columns = Columns.empty().include("comment").select("vector",
		it -> it.similarity(vector).cosine().as("similarity"));
Query query = Query.select(columns).limit(3).sort(VectorSort.ann("vector", vector));

List<CommentSearch> result = template.query(Comments.class).as(CommentSearch.class).matching(query).all();

Spring Data Redis - 3.5

Spring Data KeyValue - 3.5

Support for Not, NotIn, and NotLike query keywords

Map-based repositories now support Not, NotIn, and NotLike keywords when using query derivation.

interface PersonRepository extends Repository<Person, String> {

  Person findByFirstnameNot(String firstname);

  Person findByFirstnameNotLike(String firstname);

  Person findByFirstnameNotIn(List<String> in);
}

Spring Data REST - 4.5

Spring Data LDAP - 3.5

Release Dates

  • M1 - Feb 14, 2025

  • RC - April 11, 2025

  • GA - May 16, 2025

  • OSS Support until: May 2026

  • End of Life: Sept 2027

Clone this wiki locally