Use Standard Exception handling for JDBC SQLException. Introduce easier and consistent mechanism to construct JdbcCustomConversions. Add tests and fix mocking setup. Fix typos.
See #1828
Original pull request #2062
Restructured reading conversion process into:
- converting technology base types (JDBC Arrays).
- standard and custom conversions.
- module specific conversions (AggregateReference).
Closes#1828
Original pull request #2062
TypeInformation.OBJECT must not be compared by reference since TypeInformation instances come form a LRU cache and if TypeInformation.OBJECT gets evicted future instances might be equal, but won't have the same reference.
Closes#2083
Introduce factory methods to create mapping contexts that use quoting and that use plain identifiers for easier creation of the correct mapping context.
See #1993
Original pull request #2066
Most tests got fixed by reverting to non quoted identifiers for the test.
Interesting things that became obvious:
- SpEL expressions get the transformed (e.g. upper case) and quoted table name!? See TableNameQueryPreprocessorUnitTests and
SqlInspectingR2dbcRepositoryUnitTests
Closes#1993
Original pull request #2066
Entities may be annotated with `@Id` and `@Embedded`, resulting in a composite id on the database side.
The full embedded entity is considered the id, and therefore the check for determining if an aggregate is considered a new aggregate requiring an insert or an existing one, asking for an update is based on that entity, not its elements.
Most use cases will require a custom `BeforeConvertCallback` to set the id for new aggregate.
For an entity with `@Embedded` id, the back reference used in tables for referenced entities consists of multiple columns, each named by a concatenation of <table-name> + `_` + <column-name>.
E.g. the back reference to a `Person` entity, with a composite id with the properties `firstName` and `lastName` will consist of the two columns `PERSON_FIRST_NAME` and `PERSON_LAST_NAME`.
This holds for directly referenced entities as well as `List`, `Set` and `Map`.
Closes#574
Original pull request #1957
If no columns are given, all columns are selected by default.
If columns are specified, only these are selected.
Joins normally triggered by columns from 1:1 relationships are not implemented, and the corresponding columns don't get loaded and can't be specified in a query.
Limiting columns is not supported for single query loading.
Closes#1803
Original pull request: #1967
Overriding the proper variant of EntityInformation is now possible because we no longer utilize a private method in addition to the public one leading to partial customization of EntityInformation.
Closes#2053
Uses new switch syntax.
Signed-off-by: mipo256 <mikhailpolivakha@gmail.com>
Commit message changed by Jens Schauder
Original pull request #2000
See #1998
Query methods that are not derived methods now cause an exception, when they are annotated with `@Lock`, since this combination is not supported.
Before they just logged a warning.
Comment edited by Jens Schauder
Signed-off-by: mipo256 <mikhailpolivakha@gmail.com>
We now raise the exceptions from `NamedParameterJdbcTemplate` directly.
If you used to extract the `cause` of a `DbActionExecutionException` you should now catch that Exception directly.
Original pull request #1956Closes#831
Signed-off-by: mipo256 <mikhailpolivakha@gmail.com>