Christoph Strobl

Christoph Strobl

Spring Data Committer

Pregarten, Austria

Blog Posts by Christoph Strobl

Spring Data 2021.1 SR1 and 2021.0 SR8 released

On behalf of the team, I’m pleased to announce Spring Data service releases 2021.1.1 and 2020.0.8.
Both releases ship with mostly bug fixes and dependency upgrades.
For your convenience, Spring Boot will pick up the artifacts with its upcoming releases.

To round things off, here are the links to the artifacts, changelogs, and documentation:



Spring Data MongoDB - Relation Modelling

MongoDB’s flexible schema allows for multiple patterns when it comes to modeling relationships between entities. Also, for many use cases, a denormalized data model (storing related data right within a single document) might be the best choice, because all information is kept in one place, so that the application requires fewer queries to fetch all data. However, this approach also has its downsides, such as potential data duplication, larger documents, and the maximum document size.

In general, MongoDB recommends using normalized data models when the advantages of embedding are neglected by the implications of duplication. In this blog post, we take a look at the different possibilities of linking documents with manual references and DBRefs when the need occurs to work with relations.


Spring Data 2021.0 M4, 2020.0 SR5, Neumann SR7 and Moore SR13 released

On behalf of the team, I’m pleased to announce Spring Data service releases 2020.0 SR5, Neumann SR7, Moore SR13 and the 4th Milestone of the upcoming 2021.0 iteration.

The attentive reader might have noticed that 2021.0 M3 and 2020.0 SR4 have been hiding out of sight. Well, a tiny glitch made us redo those releases right away for an upgrade without surprises.

For your convenience Spring Boot will pick up the artifacts with its upcoming releases.

2021.0 M4


Spring Data 2020.0.3 and 2021.0-M2 released

On behalf of the team, I’m pleased to announce a Spring Data double release 2020.0.3 and 2021.0-M2.
The releases include fixes for projection interfaces, vavr integration, time value precision and 3rd party library upgrades. Make sure to check out out individual change logs.

The service release will be picked up by upcoming Spring Boot 2.4.2.



Spring Data 2020.0 - New and Noteworthy in Spring Data Elasticsearch 4.1

Spring Data Elasticsearch is one of the community modules shipped with the 2020.0 release. On behalf of P.J. Meisch, who is doing most of the heavy lifting these days, we’re happy to share his insights on the current release.

The previous release included major overhaul of the internal code structure and the API, whereas the 2020.0 version of Spring Data Elasticsearch focused on fixing bugs and adding functionality.

Altogether there were 23 bugs fixed and 81 other issues resolved. Spring Data Elasticsearch now is built with the actual Elasticsearch version 7.9.3.


Spring Data 2020.0 - New and Noteworthy in Spring Data Neo4j 6.0

Spring Data Neo4j is a Spring Data community project that is maintained and developed by Neo4j, Inc. On behalf of the team working on the module at Neo4j, we are happy to share their insights about recent changes and new features shipped with the 2020.0.0 release.

Neo4j users who use Spring Boot 2.3 require special attention because the configuration infrastructure for Spring Data Neo4j 6.0 has changed in an incompatible way.

That said, not only has the configurational infrastructure changed, but the whole project changed.


Spring Data 2020.0 - New and Noteworthy in Spring Data MongoDB 3.1

The Spring Data MongoDB 3.1 release is one of the modules that highly benefited from the recent changes in the Spring Data Commons module, by leveraging the infrastructure built there to bring reactive features like auditing and SpEL. The following snippet gives you an impression of what this means for declarative MongoDB queries using SpEL:

@Query("{ 'supervisor' : ?#{ hasRole('ROLE_ADMIN') " +
  "? new Document('$regex', '*') : } }")
Flux<Person> findAllFilteredByRole();

@EnableReactiveMongoAuditing uses the common infrastructure so you can keep track of changes easily.


Spring Data 2020.0 - New and Noteworthy - A general Overview

Spring Data 2020.0, based on Spring Framework 5.3, is out and with it, a ton of new features across the various stores, which are covered by the individual modules. While posting highlights along with the milestone announcements, we wanted to give you a more detailed description of the new features in a series of blog posts. These posts will cover, among other things:

  • Reactive Context Access features in Data Commons.
  • Lifecycle callbacks and baselining to Spring R2DBC in R2DBC.
  • General Repository and store-specific Redis Cache Metrics.
  • Neo4J reactive repositories.
  • Paging repository APIs for Spring Data for Apache Geode.
  • Geoshape, index, and reactive search improvements for Spring Data Elasticsearch.
  • Partial filter and aggregation hints in MongoDB.
  • @Bean row mappers for the JDBC module.
  • Per-statement key spaces definition for the Apache Cassandra abstraction.
  • Declarative Couchbase N1QL queries.

Spring Data 2020.0 RC2 out now

Dear Spring community,

On behalf of the Spring Data team and everyone who contributed, it’s my pleasure to announce that Spring Data 2020.0.0 RC2 is available from the milestone repository.
This release ships with 87 tickets fixed. The most notable changes are:

  • PagingAndSortingRepository support for Apache Geode.
  • Support for the REVERSERANGEBYLEX command and the KEEPTTL and JUSTID flags in Redis.
  • Additional MongoDB aggregation pipeline operators:$unionWith, $function, and $accumulator.
  • Cyclic data loading strategy improvements in Neo4j.
  • A dedicated Cassandra DataClass row mapper.
  • Suspendible repository query methods for use with Kotlin.

What's new in Spring Data (Klara Dan von) Neumann?

Spring Data Neumann is the first release to follow the new six-month cadence. The reduced timeframe lets us deliver new features more often, which is key in enabling you to move faster. The release itself ships with a bunch of new stuff and includes important (potentially breaking) upgrades of several store.

Major Version Upgrades

Several store modules, as listed below, required a major version bump due to potentially breaking changes in either their exposed API or their drivers:

Before moving on to selected new features let’s break down some those API changes. If in doubt, please visit the Upgrading sections of the modules reference documentation. And, for those worried because the upgrade would be too painful right now, the previous Moore release train will still be around and will receive updates for another twelve months.

JDBC Every SQL store comes with its very own specialties that required specific treatment. To better support this, a couple of changes had to be made, resulting a major version bump for the module. Now, by default, the AbstractJdbcConfiguration will try to determine the database specific Dialect from the provided DataSource or registered DialectResolver. Out of the box, the JDBC modules ships with dialects for H2, HSQLDB, MySQL, Postgres, MariaDB, Microsoft SqlServer and DB2. Spring Data JDBC now also by default quotes all table names and columns. While this might force you to adapt either your CREATE TABLE statements or your @Column annotations it gives greater flexibility when choosing those names.

MongoDB Spring Data MongoDB picks up the MongoDB Java and reactive streams 4.0 driver generation that lets you choose the desired methodology without having to have the other on the path. Therefore, both the sync as well as the reactive MongoDB driver are now optional dependencies that need to be added manually. With the new drivers, some of the already deprecated API has finally been removed, impacting exposed configuration classes like AbstractMongoConfiguration and XML namespace elements provided by the Spring Data implementation. We summarized public facing changes in the Upgrading Section of the reference documentation.

Apache Cassandra The long overdue upgrade to the Apache Cassandra 4.0 driver generation, with not only its new package and data structure but also changed behavior in cluster and session handling, leads to extensive changes in configuration that will bleed into user configuration when using the XML namespace or more complex scenarios than just the default setup with AbstractCassandraConfiguration.

Couchbase The Couchbase module follows the Couchbase SDK and upgrades from Version 3.x to 4.x which includes automatic index management and transaction support. Read the full story in their Blog.

Elasticsearch The release adds support for the HTTP Client API, SSL, and Proxy support, along with extensive internal changes that included streamlining and removing of (deprecated) API, which required a major version bump. The Elasticsearch module now ships a Document covering Get-, Index- and Search-Requests allowing the mapping layer to use types like SearchHit, SearchHits and SearchPage.

Having the stage set, let’s move on to a selection of new features.