Ids used as backreferences now get properly converted.
Introduced Identifier to hold information about data that needs to be considered for inserts or updates but is not part of the entity.
Apart from column names and values they also hold information about the desired JdbcType in order to facilitate conversions.
This replaces the Map handed around in the past.
Original pull request: #118.
When a column has a quoted name it contains characters illegal for parameter names.
Therefore the parameter names now get sanitised.
Original pull request: #120.
Simplify column name discovery using Optionals utility methods. Add test to verify Column annotation precedence.
Javadoc, formatting.
Original pull request: #117.
We now provide a @MappedCollection annotation as replacement for @Column's keyColumn attribute.
class Person {
@MappedCollection(idColumn = "the_id", keyColumn = "the_key")
private List<Integer> mappedList;
}
Original pull request: #117.
Reverting breaking changes to JdbcConfiguration.
Deprecating JdbcConfiguration in favor of AbstractJdbcConfiguration.
Cleaning up the API to separate it from spring-data-relational and therefore R2DBC.
Original pull request: #116.
Unwrap multi-dimensional array types to determine the proper component type. Extend tests. Inline isCollectionOf[Entities|SimpleType]Like calls and remove utility methods on RelationalPersistentProperty as the usage-scope is specific to array handling.
Original pull request: #113.
So far the lookup of `NamedParameterJdbcOperations` and `DataAccessStrategy` could happend before these beans were registered resulting in failure to consider those beans.
The logic is now split in two parts:
If a bean name is given, this is configured on the BeanDefinition level in the JdbcRepositoryConfigExtension.
If no name is give a bean is looked up by type in the JdbcRepositoryFactoryBean.
This makes the code even simpler and uses standard Spring features instead of reimplementing them.
Original pull request: #115.
This file accepted the license condition of Microsoft for there Docker image when running tests.
Very likely without the person using this knowing that she is accepting a license.
The file now has to be explicitly provided.
The Travis CI build adds the container-license-acceptance.txt for the build only.
The decision was made not to offer `insert` and `update` as part of the repository interface.
It stays available as part of the `JdbcAggregateTemplate` which may be used directly or inside of a custom method implementation.
Formatting.
Removed AbstractRelationalEntityWriter.
Fixed integration test for MS-SQL.
Extracted some common test infrastructure.
Original pull request: #107.
This introduces the JdbcRepository interface which offers two additional methods beyond the CrudRepository:
`insert` and `update`.
Both methods skip the test if the aggregate is new and perform the respective operation.
Especially `insert` is useful for saving new aggregates which are new but have an ID set by the client and not generated by the database.
Original pull request: #107.
If both RowMapper and ResultSetExtractor are configured on a method and the ResultSetExtractor has a public constructor accepting a RowMapper, the two get combined.
Original pull request: #104.
Recreated RowMapperMap, its implementation and related methods in order to not to break existing implementations.
Everything deprecated so we can remove it from 1.2 on.
Original pull request: #101.
See also: https://jira.spring.io/browse/DATAJDBC-302
A @Query annotation may now specify a class implementing ResultSetExtractor to be useed for extracting objects from ResultSets.
Original pull request: #101.
This adds MS-SQL-Server via Testcontainers to the set of databases available for integration testing.
For this purpose it accepts the EULA of MS SQL Server.
Failing tests are ignored to be fixed in separate issues.
Original pull request: #98.