-
Notifications
You must be signed in to change notification settings - Fork 677
Release Train 2021.2 (Raj) Release Notes (Preview)
-
Direct projections
Details
-
Spring Data Build - 2.7
SimpleTypeInformationMapper
now accepts a ClassLoader
to ensure class visibility from the type mapper when resolving a class name into a class. Arrangements without a configured class loader fall back to the context or system class loader which might not have access to a custom class loader (such as Spring Boot’s AppClassLoader) and that can lead to non-resolvable type hints when reading an entity on e.g. the ForkJoinPool
.
The projection support through MongoTemplate
and its reactive variant are refined supporting nested projections directly on the converter-level allowing to avoid superfluous and partial entity creation as interface projections are backed by a map. DTO projections are read directly into the DTO type.
Modifying documents is supported via the @Update
annotation that, when added to a repository finder method, will run the defined expression against all matching documents, returning the number of updated ones.
@Update("{ '$inc' : { 'visits' : ?1 } }")
long findAndIncrementVisitsByLastname(String lastname, int increment);
@Update(pipeline = {"{ '$set' : { 'visits' : { '$add' : [ '$visits', ?1 ] } } }"})
long findAndIncrementVisitsViaPipelineByLastname(String lastname, int increment);
@Query("{ 'lastname' : ?0 }")
@Update("{ '$inc' : { 'visits' : ?1 } }")
long updateAllByLastname(String lastname, int increment);
Tickets
M1
-
…
Tickets
M1
-
#1995 - RestStatusException detail in v4.3.0.
-
#1997 - IndexOutOfBoundsException when try to map inner hits with no results returned.
-
#2015 - Totalhits support for ReactiveSearchOperations.
-
#2000 - Migrate off SLF4J to Spring JCL.
-
#2004 - Add support for stored fields.
-
#2020 - Upgrade to Elasticsearch 7.16.0.
-
#2024 - Fix mapping of FieldType.TokenCount.
-
#2030 - Upgrade to Elasticsearch 7.16.1.
-
#2034 - Upgrade to Elasticsearch 7.16.2.
-
#2009 - Add AfterLoad callback.
-
#1529 - Implement support for reindex API.
-
#2075 - RequestFactory.toElasticsearchIndicesOptions fails on empty options or wildcard states.
-
#2077 - Upgrade to Elasticsearch 7.17.0.
-
#2043 - Allow to index documents to different indices in a bulk request.
The projection support through CassandraTemplate
and its reactive variant are refined supporting nested projections directly on the converter-level allowing to avoid superfluous and partial entity creation as interface projections are backed by a map. DTO projections are read directly into the DTO type.
Tickets
M1
-
…
When using Redis 6, you can now authenticate with Redis Sentinel using ACL authentication by providing the username in addition to the Sentinel password. Both clients, Jedis and Lettuce, will use the ACL authentication method when the username is configured.
With this release we rewrote the internals of RedisMessageListenerContainer
concerning subscriptions and lifecycle state transitioning behavior. Essentially, start()
and stop()
methods are now blocking until subscriptions are fully established and on shutdown until subscriptions are unregistered.
The previous implementation suffered from potential race conditions if the container was starting up and concurrently listeners were registered. The race can no longer happen as the start()
method is guarded against concurrent calls from multiple threads and the start()
method returns once the container is fully started. As consequence, when using RedisMessageListenerContainer
within a Spring context, the context startup/shutdown phase may take a bit longer due to the prolonged synchronization.
Tickets
M1
-
…
Tickets
M1
-
https://github.com/spring-projects/spring-data-jdbc/issues/1065 Geometry Postgres data types are now supported.
-
https://github.com/spring-projects/spring-data-jdbc/issues/777 Inserts for Id only properties, including those that only contain collections, are now supported for all databases
Spring Data R2DBC can be used with R2DBC 0.9. To use R2DBC 0.9 you require an R2DBC 0.9-compatible driver and you need to upgrade the specification interface to 0.9.0.RELEASE
. When using Maven, your pom.xml
could contain the following dependencies:
<dependencies>
<dependency>
<groupId>io.r2dbc</groupId>
<artifactId>r2dbc-spi</artifactId>
<version>0.9.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>r2dbc-postgresql</artifactId>
<version>0.9.0.RELEASE</version>
</dependency>
</dependencies>
Tickets
M1
-
…