Creating R2dbcCustomConversions without a dialect or StoreConversions can easily lead to misconfiguration that isn't immediately obvious because of missing store simple types. We now deprecated the constructor and have added guidance on how to properly create R2dbcCustomConversions that is associated with a dialect.
Closes#628
Query methods returning dynamic projections based on a Class argument now properly apply projection conversion. Previously, classes not seen by the mapping context were skipped and that caused projecting query methods to return the actual entity type.
Closes#607
Rename method to renderForGeneratedValues to reflect its intended usage and enhance documentation.
Tweak Javadoc.
Closes: #483
Original pull request: #602.
Different R2DBC drivers expect generated keys when they are in camel case to be quoted or unquoted.
This can now be controlled by implementing `Dialect.renderForGeneratedKeys`.
Closes: #483
Original pull request: #602.
ByteToBooleanConverter is now marked as reading converter and we've added a writing converter with BooleanToByteConverter to ensure proper conversion. Previously, all byte values were converted to boolean resulting in data precision loss.
Closes#589
Repository query methods are now executed through R2dbcEntityTemplate to participate in entity callbacks.
Previously, query methods were executed directly using DatabaseClient which didn't allow for entity callbacks.
Closes#591
We now correctly obtain the target type for a persistent property that should be converted into an array value prior to constructing Parameter.
Previously, we fell back to the actual type without considering potential converters which left collection-like enum properties without a value with the enum array type that was potentially not supported by the database driver.
Closes#593
The wrong call is not caught by the compiler due to a bind method that has a signature of (String name, Object value).
Previously, bindNull(…) called bind(…).
Closes#587.
We now check in R2dbcEntityTemplate whether we need to skip the Id value if its value is null or a primitive using its default. Previously, the check was located in the converter. Converting an entity afteri ncrementing the version of a versioned entity would write the Id value as the entity was no longer considered to be new.
Closes#557.
Make count assertions case-insensitive regarding the count column name. Add missing license headers. Support DatabaseContainer without a database name.
See #230
We support Oracle's experimental R2DBC driver by providing a dialect including bind markers. Since the driver is not yet available from Maven Central and it requires module-path support for ServiceLoader discovery, we need to apply a few workarounds including absence check for our integration tests.
See #230
We now call Statement.returnGeneratedValues(…) with the primary key column name to ensure consistent behavior across all drivers and to avoid non-portable behavior.
Closes#558
R2dbcEntityTemplate.insert(…) now fully consumes the response from the INSERT call before continuing. Previously, we consumed only the first signal and continued then. A driver could emit a row and then an error signal and so the error signal would go unnoticed.
Closes#552.