Spring Data R2DBC Changelog =========================== Changes in version 1.2.6 (2021-03-17) ------------------------------------- * #558 - Consider calling Statement.returnGeneratedValues() using the primary key column name. * #557 - Default ID value on new record is inserted when optimistic locking is enabled. * #552 - R2dbcEntityTemplate.insert(…) doesn't propagate error signals after data signal. * #548 - Upgrade to Arabba SR9. * #546 - Remove .RELEASE suffix from version number in documentation. * #230 - Oracle with R2DBC. Changes in version 1.1.8.RELEASE (2021-03-17) --------------------------------------------- * #552 - R2dbcEntityTemplate.insert(…) doesn't propagate error signals after data signal. * #548 - Upgrade to Arabba SR9. Changes in version 1.3.0-M4 (2021-02-18) ---------------------------------------- Changes in version 1.2.5 (2021-02-18) ------------------------------------- Changes in version 1.3.0-M3 (2021-02-17) ---------------------------------------- * #530 - MappingR2dbcConverter uses SqlIdentifier.toString() instead of SqlIdentifier.getReference() when calling Row.get(…). * #506 - Enable Project automation through GitHub Actions. Changes in version 1.2.4 (2021-02-17) ------------------------------------- * #530 - MappingR2dbcConverter uses SqlIdentifier.toString() instead of SqlIdentifier.getReference() when calling Row.get(…). Changes in version 1.1.7.RELEASE (2021-02-17) --------------------------------------------- * #523 - Update copyright year to 2021. * #519 - Returning interface implemented by domain type leads to NullPointerException. * #518 - IgnoreCase works only if a String property can be resolved to a column. * #515 - Fix typo in changelog. * #514 - Reference Docs: typo on firstname. Changes in version 1.3.0-M2 (2021-01-13) ---------------------------------------- * #523 - Update copyright year to 2021. * #520 - Use pull_request_target in PR project assignment. * #519 - Returning interface implemented by domain type leads to NullPointerException. * #518 - IgnoreCase works only if a String property can be resolved to a column. * #515 - Fix typo in changelog. * #514 - Reference Docs: typo on firstname. * #509 - Update CI jobs with Docker Login. Changes in version 1.2.3 (2021-01-13) ------------------------------------- * #523 - Update copyright year to 2021. * #519 - Returning interface implemented by domain type leads to NullPointerException. * #518 - IgnoreCase works only if a String property can be resolved to a column. * #515 - Fix typo in changelog. * #514 - Reference Docs: typo on firstname. Changes in version 1.2.2 (2020-12-09) ------------------------------------- * #505 - Wrong documentation description for AfterSaveCallback. * #503 - SQL statements not logged anymore in spring-data-r2dbc:1.2.1. * #497 - Release 1.2.2 (2020.0.2). Changes in version 1.3.0-M1 (2020-12-09) ---------------------------------------- * #506 - Enable Project automation through GitHub Actions. * #498 - Implement CrudRepository.delete(Iterable ids). * #489 - Release 1.3 M1 (2021.0.0). Changes in version 1.1.6.RELEASE (2020-12-09) --------------------------------------------- * #495 - GH-494 - Fix links to Spring-Framework reference. * #494 - Links to Spring-Framework reference are broken. * #490 - Enable Maven caching for Jenkins jobs. * #487 - Release 1.1.6 (Neumann SR6). Changes in version 1.2.1 (2020-11-11) ------------------------------------- * #492 - Missing support for HStore data type. * #488 - Release 1.2.1 (2020.0.1). Changes in version 1.2.0 (2020-10-28) ------------------------------------- * #481 - Release 1.2 GA (2020.0.0). Changes in version 1.1.5.RELEASE (2020-10-28) --------------------------------------------- * #485 - Upgrade to R2DBC Arabba SR8. * #479 - Link to stackoverflow in readme points to incorrect url. * #471 - Contradictory documentation of DatabaseClient.insert(). * #461 - Release 1.1.5 (Neumann SR5). Changes in version 1.2.0-RC2 (2020-10-14) ----------------------------------------- * #475 - Projections doesn't work using data-repositories. * #469 - NPE when calling @Query returning null. * #468 - Result of derived ExistsBy Query not handled properly. * #467 - Migrate tests to JUnit 5. * #465 - Enum values used through @Query not converted to String. * #463 - Update CI jobs for Java 15. * #462 - Release 1.2 RC2 (2020.0.0). * #413 - Refine reference documentation after Spring R2DBC migration. * #395 - Allow suspend + List in CoroutineCrudRepository. Changes in version 1.2.0-RC1 (2020-09-16) ----------------------------------------- * #454 - Adapt to changed array assertions in AssertJ. * #453 - Introduce converters to consume Postgres Json and convert these to String/byte[]. * #452 - Introduce factory method for StatementMapper. * #451 - CreatedDate not set on new versioned entities. * #450 - Add support for @Value when creating entities using their constructor. * #447 - Register R2dbcConverter bean and deprecate ReactiveDataAccessStrategy. * #444 - Id is not set after Repository.save for primitive ids. * #440 - Create R2dbcEntityTemplate in R2dbcRepositoryFactoryBean. * #431 - Release 1.2 RC1 (2020.0.0). * #423 - Add r2dbc-postgresql Geotypes to simple types. Changes in version 1.1.4.RELEASE (2020-09-16) --------------------------------------------- * #458 - Upgrade to netty 4.1.52.Final. * #457 - Upgrade to R2DBC Arabba-SR7. * #442 - Fix typos in reference docs. * #434 - Syntax error in reference documentation at Query with SpEL expressions. * #432 - Release 1.1.4 (Neumann SR4). * #392 - Wording changes. Changes in version 1.1.3.RELEASE (2020-08-12) --------------------------------------------- * #429 - Fix typos in reference documentation. * #425 - Fix lack of @Modifying in example code. * #421 - MappingException when calling a modifying query method that returns kotlin.Unit. * #420 - Improve documentation - spring framework version. * #418 - Document optimistic locking using @Version. * #416 - SimpleR2dbcRepository does not support custom subclasses. * #410 - Make it possible to write delete/update operations without using matching. * #409 - Release 1.1.3 (Neumann SR3). * #408 - gh-407 - Add ReactiveSortingRepository support. * #406 - Repositories cannot be used with two different database systems. * #373 - SpEL parsing does not consider multiple usages and nested object references. Changes in version 1.2.0-M2 (2020-08-12) ---------------------------------------- * #414 - Adopt SpEL support to use ReactiveEvaluationContextProvider. * #412 - Refactor Spring Data R2DBC on top of Spring R2DBC. * #411 - Introduce EnumWriteSupport for simpler pass-thru of enum values. * #407 - Add ReactiveSortingRepository support. * #402 - Exclude primitive id property from INSERT if it is set to 0 (zero). * #398 - Upgrade to MySQL JDBC connector 8.0.21. * #391 - Release 1.2 M2 (2020.0.0). * #281 - Add support for auditing. * #215 - Add lifecycle callbacks and EntityCallback support. Changes in version 1.1.2.RELEASE (2020-07-22) --------------------------------------------- * #401 - Upgrade to R2DBC Arabba-SR6. * #390 - Insert should work without giving any explicit assignment/variables. * #387 - Release 1.1.2 (Neumann SR2). Changes in version 1.2.0-M1 (2020-06-25) ---------------------------------------- * #385 - Use standard Spring code of conduct. * #368 - Refactor Spring Data R2DBC on top of Spring R2DBC. * #367 - Release 1.2 M1 (2020.0.0). Changes in version 1.1.1.RELEASE (2020-06-10) --------------------------------------------- * #384 - Consider return type of suspended methods returning Flow. * #383 - QueryMapper fails when using Criteria.from(…) with two or more criteria. * #377 - Upgrade to R2DBC Arabba SR4. * #375 - Document supported databases. * #373 - SpEL parsing does not consider multiple usages and nested object references. * #369 - PropertyReferenceException if path expression maps into simple type properties. * #366 - Release 1.1.1 (Neumann SR1). * #207 - R2dbcCustomConversions converts LocalDate/LocalDateTime/Instant values to java.util.Date. Changes in version 1.1.0.RELEASE (2020-05-12) --------------------------------------------- * #365 - Support optimistic locking in immutable way. * #364 - Add lockClause to Dialect implementation. * #363 - Query derivation does not support count projection. * #357 - Release 1.1 GA (Neumann). * #329 - Translate driver exceptions in R2dbcTransactionManager. Changes in version 1.1.0.RC2 (2020-04-28) ----------------------------------------- * #354 - NullPointerException when inserting entity with read only fields. * #350 - Use Testcontainers constructor with image name. * #349 - Between queries bind Pair as second between argument. * #347 - Use JDK 14 for Java.NEXT CI testing. * #346 - #344 Add support for support distinct derived query methods. * #344 - Add support for support distinct derived query methods. * #342 - Move off deprecated Criteria and Update. * #341 - Add support for derived delete query methods. * #335 - Consider Pageable in derived queries. * #333 - Move off deprecated EntityInstantiators. * #332 - fix typos. * #331 - Release 1.1 RC2 (Neumann). * #93 - Add support for Optimistic Locking using @Version. Changes in version 1.1.0.RC1 (2020-03-31) ----------------------------------------- * #330 - Adapt to Criteria objects in Spring Data Relational. * #328 - Upgrade to R2DBC Arabba SR3. * #321 - Coroutine repository methods cause ParameterOutOfBoundsException: Invalid parameter index. * #318 - Add support for Json type. * #317 - Release 1.1 RC1 (Neumann). * #295 - #282 - Support of query derivation. * #282 - Support of query derivation. Changes in version 1.1.0.M4 (2020-03-11) ---------------------------------------- * #316 - Adapt to Mockito 3.3. * #313 - Add builder for ConnectionFactoryInitializer. * #311 - AbstractR2dbcConfiguration should use R2dbcMappingContext instead of RelationalMappingContext. * #308 - #189 - Accept StatementFilterFunction in DatabaseClient. * #307 - Add support for Criteria composition. * #306 - Upgrade to JAsync 1.0.14. * #305 - Apply registered converters to bind values. * #302 - Add documentation for entity-state detection. * #301 - Release 1.1 M4 (Neumann). * #300 - Extend unit tests for QueryMapper. * #290 - Add Kotlin extensions for R2dbcEntityTemplate. * #289 - Add support for Criteria composition. * #267 - Combined AND and OR predicate in Criteria Builder. * #189 - execute(...) should be extended with returning generated keys. * #164 - @Query definitions with SpEL expressions. * #42 - Add support for MariaDB. Changes in version 1.1.0.M3 (2020-02-12) ---------------------------------------- * #296 - Rename DatabaseClient bean to r2dbcDatabaseClient. * #294 - Upgrade to R2DBC Arabba-SR2. * #291 - Adapt to SqlIdentifier changes in Spring Data Relational. * #287 - #220 - Introduce R2dbcEntityTemplate. * #285 - MappingContext creates entity for UUID. * #280 - Release 1.1 M3 (Neumann). * #260 - Support interface projections with DatabaseClient.as(…). * #220 - Add entity-centric insert/update/delete methods to DatabaseClient. Changes in version 1.1.0.M2 (2020-01-17) ---------------------------------------- * #278 - Release 1.1 M2 (Neumann). Changes in version 1.1.0.M1 (2020-01-16) ---------------------------------------- * #274 - Upgrade to Spring Data Relational 2.0.0. * #256 - Modify README.adoc. * #249 - Release 1.1 M1 (Neumann). * #234 - Enable building with JDK11+. Changes in version 1.0.0.RELEASE (2019-12-06) --------------------------------------------- * #245 - Upgrade to Spring Data Moore SR3. * #244 - Add checkpoint for SQL execution. * #243 - Add tests for create and drop statements. * #242 - Upgrade to R2DBC 0.8.0.RELEASE (Arabba-RELEASE). * #239 - Add documentation for projecting query methods. * #238 - Add Modifying query annotation. * #237 - Move @Query annotation to org.springframework.data.r2dbc.repository. * #236 - Enable artifactory-maven-plugin. * #232 - Guard save(…) with provided Id with TransientDataAccessException if row does not exist. * #228 - Use consistently spaces instead of tabs in readme code samples. * #219 - Upgrade to r2dbc-mysql 0.8.0 RC2. * #216 - ConnectionFactoryInitializer.execute(…) does not subscribe to DatabasePopulatorUtils.execute. * #213 - Provide Kotlin extensions on UpdatedRowsFetchSpec. * #209 - Kotlin bind extension loses specific type information. * #208 - Upgrade to R2DBC Arabba RC2. * #205 - Release 1.0 GA. * #204 - Add SingleConnectionConnectionFactory. * #139 - Overriding list of custom objects type property conversion. Changes in version 1.0.0.RC1 (2019-10-01) ----------------------------------------- * #202 - Upgrade to r2dbc-mysql 0.8.0 RC1. * #200 - Remove @ExperimentalCoroutinesApi annotations. * #199 - Add documentation for Kotlin support. * #197 - Upgrade to R2DBC Arabba RC1. * #191 - Adapt to changed groupId of r2dbc-mysql. * #190 - Adapt to R2DBC SPI changes. * #188 - Adapt to package changes in r2dbc-mysql. * #186 - byte[]: Distinguish between binary or a smallint[] column. * #185 - Disable Postgres integration tests. * #184 - Restore AutoCommit and IsolationLevel after transaction. * #183 - Use Statement.bind(String) and Row.get(String) methods instead of bind(Object). * #182 - Upgrade to R2DBC 0.8.0.RC1. * #181 - Remove repositories declaration from published pom. * #180 - Remove jcenter repository from pom. * #178 - IN CLAUSE and binding throws java.lang.IllegalArgumentException. * #177 - NOT IN comparator is not working with Criteria API. * #176 - Consistently use a single netty version. * #175 - Editing pass for the reference docs. * #174 - Update README.adoc. * #173 - Upgrade to Coroutines 1.3.0. * #172 - Upgrade to Kotlin Coroutines 1.3. * #171 - Upgrade to jasync-r2dbc-mysql 1.0.6. * #170 - Switch to newly introduced usingWhen methods. * #169 - Allow usage of Entity-level converters. * #168 - Introduce Dialect-specific converters. * #166 - Add converter for byte to boolean for MySQL. * #163 - Add tests for R2DBC MySQL. * #162 - Support nullable values in GenericInsertSpec.value(). * #161 - Inserting an array into PostgreSQL array type inserts null value. * #159 - Delete by query doesn't seems to work as expected. * #155 - Consider early returns to omit unnecessary conversion. * #154 - Release 1.0 RC1. * #152 - #151 - SimpleR2dbcRepository is now transactional. * #151 - The repository implementation should be transactional. * #148 - Sorting by column names not working with Database Client. * #146 - Revise readme for a consistent structure. * #145 - Spring Data does not enter strict configuration mode with multiple modules on the class path. * #141 - Add support for schema initialization. * #140 - Accept simple mapping function for Row in DatabaseClient. * #138 - Allow multiple usages of the same named parameter. * #135 - Adapt to renamed TransactionSynchronizationManager.forCurrentTransaction(). * #132 - Add support for AbstractRoutingConnectionFactory. * #130 - Fix scheme name in sample code. * #128 - DatabaseClient bindNull throws NullPointerException. * #126 - Use testcontainers version property. * #125 - Reuse Dialect support provided by Spring Data Relational. * #124 - Remove deprecated DatabaseClient.execute() and TransactionalDatabaseClient. * #123 - Kotlin extensions. * #122 - Improved Kotlin extensions for CriteriaStep and DatabaseClient should be provided. * #120 - Fix link text for jasync-sql. * #118 - Upgrade to jasync-r2dbc-mysql 0.9.52. * #112 - Accept SQL directly in DatabaseClient.execute(…) stage. * #105 - Move named parameter resolution to ReactiveDataAccessStrategy. * #104 - Add pluggable mechanism to register dialects. * #103 - RowsFetchSpec.awaitOne() and RowsFetchSpec.awaitFirst() should throw EmptyResultDataAccessException. * #98 - Add support for AbstractRoutingConnectionFactory. * #89 - Consider compressing DatabaseClient.execute().sql(…) to DatabaseClient.execute(…). * #87 - Accessing inherited @Id property fails. * #69 - Allow object creation with a subset of columns. * #55 - Reuse Dialect support provided by Spring Data Relational. Changes in version 1.0.0.M2 (2019-05-14) ---------------------------------------- * #117 - Upgrade to jasync-sql 0.9.51. * #116 - Upgrade to R2DBC 0.8 M8. * #115 - Upgrade to Spring Data Moore M4. * #111 - Revisit package structure and naming. * #109 - Support mapping of simple types (e.g. to Long/Integer) out of the box. * #108 - #107 - Add ConnectionFactoryTransactionManager and reactive transaction management utilities. * #100 - Refactor code to not require Spring JDBC as mandatory dependency. * #95 - Use @Configuration(proxyBeanMethods=false) for AbstractR2dbcConfiguration. * #90 - Inserting a row without key generation via R2dbcRepository.save(…) completes without emitting objects. * #86 - Add non-nullable variant to RowsFetchSpec extensions. * #85 - Could not read property java.math.BigDecimal. * #75 - Add support for MySQL. * #74 - URL Cleanup. * #73 - Introduce PreparedOperation. * #65 - Add converters for simple type projections. * #64 - Add criteria API to create filter predicates. * #63 - Add DatabaseClient Coroutines extensions. * #61 - Move Conversion-related functionality to MappingR2dbcConverter. * #60 - Use R2DBC's BOM for dependency management. * #59 - Consider custom conversion in EntityRowMapper and MappingR2dbcConverter. * #57 - Add R2DBC-specific exception translation. * #56 - Integrate Spring Data Relational's Statement Builder. * #54 - Upgrade to R2DBC 1.0 M7. * #52 - Don't depend on MSSQL JDBC driver. * #51 - #29 - Use TestContainers for integration tests. * #47 - Add support for named parameters. * #45 - Update copyright years to 2019. * #41 - Add support for simple type projections. * #39 - Add support for Custom Conversion. * #37 - Release 1.0 M2. Changes in version 1.0.0.M1 (2018-12-12) ---------------------------------------- * #36 - Release 1.0 M1. * #35 - Simplify reference documentation setup. * #32 - Drop oracle-java8-installer from TravisCI build. * #30 - Add support for Custom Conversions for array-types. * #27 - Add project site redirect. * #26 - Add support to write simple type collections as arrays. * #25 - Provide reference documentation. * #21 - Upgrade to R2DBC 1.0M6. * #20 - Add Dialect support to apply driver-specific bind markers. * #18 - Cleanup pom.xml and upgrade dependencies. * #16 - Add abstract configuration class for R2DBC. * #15 - Add support for parameter bind markers. * #14 - RETURNING * does not work on H2. * #13 - Add configuration components for @EnableR2dbcRepositories. * #12 - SimpleR2dbcRepository does not retain item order on save(…). * #11 - Adapt Statement.bind(…) calls to newly introduced positional (integer-arg) binding. * #10 - Adapt to removed Statement.executeReturningGeneratedKeys(). * #9 - H2Statement does not define or inherit an implementation of bind(Ljava/lang/Integer;Ljava/lang/Object;). * #8 - exchange() should allow to deal with DROP or CREATE requests. * #6 - Preserving order on multiple inserts. * #5 - Build failures due to failing Oracle JDK downloads. * #2 - Add initial support for DatabaseClient and Reactive Repositories. * #1 - Setup repository.