Simplified use of queryMethod in the different JdbcQuery classes.
Improved method names.
Added author tags.
Code formatting.
Corrected HTML in JavaDoc.
Originial pull request #1423
Do not expose setForeignKeyNaming methods on NamingStrategy to make less assumptions about how a naming strategy gets implemented. Provide getRequiredLeafEntity method on PersistentPropertyPathExtension to reduce null and state assertion checks.
Refine getTableName/getQualifiedTableName approach to reduce API surface and avoid deprecations.
See #1147
Original pull request: #1324.
The new default is to take `@Table` annotations into account.
The behaviour can be configured by setting the `foreignKeyNaming` property on the `RelationalMappingContext`.
Closes#1162
See #1147
Original pull request: #1324.
The default version is the behavior that existed so far:
The back reference is the table name as generated by the `NamingStrategy` without taking `@Table` annotations into account.
The new alternative is to take `@Table` into account.
The behavior can be configured by setting the `foreignKeyNaming` property on the `RelationalMappingContext`.
Closes#1161Closes#1147
Original pull request: #1324.
You may now annotate properties of the aggregate root with `@InsertOnlyProperty`.
Properties annotated in such way will be written to the database only during insert operations, but they will not be updated afterwards.
Closes#637
Original pull request #1327
Use consistent method and argument names for newly introduced methods. Reorder and group template API methods to keep related methods together.
See: #1315
Original pull request: #1324.
Code changes to check for both null and empty criteria before proceeding to where clause generation avoids exception.
Closes#1329
Original pull request #1338
Quoting is important since it allows use of keywords as names.
We do not change the letter casing.
In a default setup the database does not care since it is case-insensitive.
If configured to be case-sensitive it makes sense to pass on what ever letter casing there is, since you seem to care.
Closes#1216
See #914
Delete operations that receive a version attribute throw an `OptimisticFailureException` when they delete zero rows.
Otherwise, the NOOP delete gets silently ignored.
Note that save operations that are determined to be an update because the aggregate is not new will still throw an `IncorrectUpdateSemanticsDataAccessException` if they fail to update any row.
This is somewhat asymmetric to the delete-behaviour.
But with a delete the intended result is achieved: the aggregate is gone from the database.
For save operations the intended result is not achieved, hence the exception.
Closes#1313
Original pull request: #1314.
See https://github.com/spring-projects/spring-data-commons/issues/2651
This removes most currently deprecated code.
An exception are various deprecations in Spring Data R2DBC for which it is not obvious how to modify the code that is still using the deprecated API.
Original pull request #1304