Let SqlIdentifier implement Streamable<SqlIdentifier> to allow iteration of composed identifiers.
Adapt dialect to iteration changes.
Rewrite simple if blocks to using ternary operators.
Original pull request: #221.
We now no longer double-wrap parameters for IN criteria. Previously, collection arguments were wrapped into another collection which caused double-wrapped lists.
Original pull request: #217.
Enabled access to identifier parts by String arguments in order to make usage with MyBatis feasable.
Properly pass identifier information to MyBatis for insert statements.
Original pull request: #218.
Using `execute` instead of `query` since we are not interested in the results.
Refactoring of the concurrency tests.
Make the concurrency tests run with all databases.
Added support for DB2.
Moved AnsiDialect to the main sources so it can be referenced in other Dialects.
Original pull request: #196.
Introduces infrastructure to obtain locks and uses them to acquire locks on the table of the aggregate root before deleting references.
Without this lock deletes access non root entities before the aggregate root, which is the opposite order of updates and thus may cause deadlocks.
Original pull request: #196.
Move container initialization from static initializer into createDataSource() to not trigger container start when loading the class.
Add TestExecutionListener to ignore tests if the license for a container was not accepted. Add Awaitility to delay test execution until the database is ready so we avoid strange failures due to a delayed container startup.
Fix generics, since tags, author tags. Reformat code.
Original pull request: #213.
Db2Dialect added in order to support DB2.
Added test configuration files.
Adapted some tests to make them properly work with DB2
QueryAnnotationIntegrationTests converted into an Hsqldb only test since it is next to impossible to make it work across databases since it heavily depends on database and driver specifics.
Removed license acceptance file from the repository in order to not accept a license in the name of someone forking the repository.
For the CI build an appropriate file gets created on the fly.
Original pull request: #213.
Moved Identifier and IdentifierBuilder to ...jdbc.core.convert.
Moved RelationaAuditingCallback to ..mapping.event.
Improved DependencyTests to properly consider "relational" a main module.
The select list must include columns for 1:1 relationships.
The implementation is copied from SqlGenerator and will be unified in the near future.
Original pull request: #209.
Move JdbcRepositoryQuery into repository.query package. Split JdbcRepositoryQuery into AbstractJdbcQuery and StringBasedJdbcQuery.
Add QueryMapper for mapping of Criteria.
Initial support for query derivation.
Emit events and issue entity callbacks only for default RowMapper.
Custom RowMapper/ResultSetExtractor are in full control of the mapping and can issue events/callbacks themselves.
Update reference documentation.
Original pull request: #209.
Tweak Javadoc to reflect the used type. Create Criteria objects via Criteria.from(…) to expose the Criteria API without the need of casting.
Original pull request: #205.
Remove unused AggregateChangeExecutionContext. Extract MutableAggregateChange interface and use it to encapsulate the implementation class. Expose MutableAggregateChange in entity callbacks where mutation of the MutableAggregateChange is intended.
Fix generics and license headers, tweak Javadoc.
Original pull request: #197.
Removed the Interpreter and replaced it with AggregateChangeExecutor and AggregateChangeExecutionContext.
The latter handles the mutable data like ids and versions.
Original pull request: #197.
We now support Conditions.between, notBetween, and notLike as additional criteria conditions and support case-insensitive comparisons.
For LIKE escaping we pick up the Escaper configured at Dialect level. The newly introduced ValueFunction allows string transformation before computing a value by applying the Escaper to the raw value. Escaping is required for StartingWith, Contains and EndsWith PartTree operations.
Original pull request: spring-projects/spring-data-r2dbc#295.
Rename Dialect bean to jdbcDialect to avoid generic bean names. Require JdbcOperations in DialectResolver. Rename JdbcDialectResolver to DialectResolver for consistent naming with R2DBC the underlying type is a Dialect.
Tweak Javadoc and extend documentation with custom conversions include from Spring Data Commons. Extract MySQL identifier processing defaults into constant.
Original pull request: #202.
So far the user had to specify an `Dialect` themselves if they wanted to use anything but HSQLDB.
We now identify the supported databases and pick the appropriate `Dialect`.
Vendors who want to offer support for their database may provide an implementation of `JdbcDialectProvider` and register it using a file under the key `org.springframework.data.jdbc.repository.config.DialectResolver$JdbcDialectProvider`.
Original pull request: #202.
Events now have a type parameter for the type of aggregate root they relate to.
In order to utilize this an react to only events relating to a specific type of entity `AbstractRelationalEventListener` was added.
Original pull request: #199.