Get ahead
VMware offers training and certification to turbo-charge your progress.
Learn moreOn behalf of the team and everyone who has contributed, I am pleased to announce the sixth and last milestone for the next Spring Data generation. This milestone continues delivering new features, refinements, and dependency upgrades.
Spring Data MongoDB now aligns with the MongoDB Java Driver and no longer defaults to a representation for UUID
values. Instead, you need to explicitly configure the desired representation through driver settings.
We're also no longer providing a default configuration value for BigInteger
and resort the default for BigDecimal
to Decimal128
in accordance with MongoDB's default codecs. This is a much safer approach that prevents you your application from accidentally switching representations when upgrading to the new major version. Please make sure to configure formats for big numbers through MongoCustomConversions
.
Setting the BigDecimal
representation to STRING
or DECIMAL128
allows you to control the default representation for BigDecimal
and BigInteger
values. Any explicit type hints through @Field(targetType = FieldType.DECIMAL128)
or @Field(targetType = FieldType.STRING)
remain unaffected.
This milestone ships with AOT support for Spring Data JDBC and Spring Data for Apache Cassandra repositories. This includes support for query derivation, declared, and named queries.
When enabling AOT processing, Spring Data includes generated property accessors and entity instantiators at build time in the final AOT bundle. Instead of generating these classes during runtime, we now capture the generated classes during AOT optimizations. This improves startup time and reduces memory consumption. Additionally, generated property accessors and entity instantiators are now available within GraalVM native images.
We're happy to announce that Spring Data Commons and Spring Data REST modules now support Jackson 3. While Spring Data Commons ships with deprecated Jackson 2 classes and can still be operated using Jackson 2, Spring Data REST requires Jackson 3 as Spring Data REST is effectively a huge abstraction over Jackson in some sense.
Spring Data Neo4j supports now vector search methods based on a vector index at the repository level.
The repository methods have to be annotated with @VectorSearch(indexName,numberOfNodes)
to make use of Neo4j's vector search capabilities. The vector search can be combined with already existing search functions, like findByName
and will invoke a vector search prior doing the name filtering. A Vector
parameter is mandatory to make the query work but it can also be enhanced with a Score
cutoff to ignore low-quality results.
interface VectorSearchRepository extends CrudRepository<EntityWithVector, String> {
@VectorSearch(indexName = "entityIndex", numberOfNodes = 2)
SearchResults<EntityWithVector> findAllBy(Vector searchVector);
@VectorSearch(indexName = "entityIndex", numberOfNodes = 2)
SearchResult<EntityWithVector> findBy(Vector searchVector, Score score);
}
Find more details about Spring Data Neo4j's vector search in the reference documentation.
This milestone is the last milestone before entering the release candidate phase in October followed by general availability in November. We encourage you to try out the new features and improvements and provide feedback to help us make Spring Data even better.
4.0 M6
- Javadoc - Documentation - Changelog4.0 M6
- Javadoc - Documentation - Changelog8.0 M6
- Javadoc - Documentation - Changelog5.0 M6
- Javadoc - Documentation - Changelog5.0 M6
- Javadoc - Documentation - Changelog4.0 M6
- Javadoc - Documentation - Changelog4.0 M6
- Javadoc - Documentation - Changelog5.0 M6
- Javadoc - Documentation - Changelog4.0 M6
- Javadoc - Documentation - Changelog6.0 M6
- Javadoc - Documentation - Changelog6.0 M6
- Javadoc - Documentation - Changelog4.0 M6
- Javadoc - Documentation - Changelog