Refactor duplicate code, introduce ParameterSourceHolder to form a proper object of handing in always the target object instance to append SQL parameters.
Original Pull Request: #2240
We now consider converted identifiers when converting multiple identifiers to SQL parameters. Previously, we only considered simple types and composite identifiers. When we introduced composite identifier support, the conversion paths were lost and this change now fixes the regression. Also expand IN criteria to a sequence of (… AND …) OR (…) predicates when using embeddables.
Replace annotation-based naming with naming strategy for table reuse in tests.
See: #2225
Original Pull Request: #2240
Add missing Version annotation and return early in IdGeneratingEntityCallback.
Update r2dbc variant of IdGeneratingEntityCallback to match jdbc.
Original Pull Request: #2200
The check prevented the id generation when there was a version property, since that was already set at the time of the check and therefore the check failed.
Closes: #2199
Original Pull Request: #2200
Previously, that case was handled by the registration for Temporal, which maps the type to a Timestamp, which doesn't make sense for Year.
Closes: #2184
No longer throw TransientDataAccessResourceException if R2DBC update does not yield any updated rows.
Remove mentions of IncorrectUpdateSemanticsDataAccessException, add mention of OptimisticLockingFailureException to affected methods.
Consistent OptimisticLockingFailureException exception message.
See #2176
Original pull request: #2185
When an update results in 0 updated rows (without optimistic locking) we now ignore it, instead of throwing an exception.
The reason is that at least some databases return 0 when a row for updating was found, but none of the values changed.
Closes#2176
Original pull request: #2185