Renames *Bean annotation attributes to *Ref to match other similar attributes.
Removes additional arguments from constructors of public classes in order to avoid breaking the API.
Gathers application context configuration for StringBasedJdbcQueryMappingConfigurationIntegrationTests in a single java file.
Formatting.
Adds the author tag.
Changes default value of references to the empty String.
Original pull request: #249.
We now evaluate @Value annotations in persistence constructors to compute values when creating object instances. AtValue can be used to materialize values for e.g. transient properties. Root properties map to the ResultSet from which an object gets materialized.
class WithAtValue {
private final @Id Long id;
private final @Transient String computed;
public WithAtValue(Long id,
@Value("#root.first_name") String computed) { // obtain value from first_name column
this.id = id;
this.computed = computed;
}
}
We now support empty IN lists by rendering a condition that evaluates to FALSE using 1 = 0. For NOT IN, we render a condition that evaluates to TRUE using 1 = 1.
Running all tests with
```
./mvnw clean install -Pall-dbs
```
or similar now requires an appropriate `container-license-acceptance.txt` to be on the classpath.
In order to ignore the tests that require an explicit license acceptance one may add the maven profile `ignore-missing-license` like so
```
./mvnw clean install -Pall-dbs,ignore-missing-license
```
Original pull request: #239.
Oracle integration tests where failing when the docker container was freshly started,
as it happens every time on CI.
The reason was mainly a misuse of Awaitility.ignoreException(Class) which only ignores exception of exactly the class provided, not of subtypes.
Apart from fixing this for Oracle the complete logic for verifying the connection was moved to DataSourceConfiguration so other database use it as well in a consistent manner.
Original pull request: #237.
Rename RequiredFeature to EnabledOnFeature to align with JUnit terminology. Use RunWith instead of Spring rules. Reformat code. Update documentation.
Original pull request: #232.
An Oracle database is started in Docker using Testcontainers.
Tests that don't work yet are skipped using the TestDatabaseFeatures which allows central control, which database supports which feature.
A suitable oracle image is deployed on DockerHub as "springci/spring-data-oracle-xe-prebuild:18.4.0".
The official Oracle docker images as described here https://github.com/oracle/docker-images/blob/master/OracleDatabase/SingleInstance/README.md are not suitable since it needs about 15min to start and also TestContainers seems to break it by trying to us it to early.
The referenced image was created based on these instructions: https://github.com/oracle/docker-images/tree/master/OracleDatabase/SingleInstance/samples/prebuiltdb
The following features don't yet work for Oracle:
* Loading of date like properties.
* Ids with custom names.
* Array support.
* Boolean properties.
* BigDecimals and BigInteger is limited to what fits into Oracles NUMBER data type.
* Entities that use a join during load time, i.e. with a one to one relationship.
Original pull request: #232.
This changes the behavior of the JDBC driver from always returning `MySQL` for product name to a more involved logic which might result in it returning `MariaDB`.
Original pull request: #231.
Using Criteria.from(…) with multiple Criteria objects now uses properly AND combination along with group nesting to render a correct criteria. Previously, the INITIAL combinator in groups caused a mapping exception.
Custom value types like outlined below can now server as id property
public class IdValue {
String id;
}
public class DomainType {
@Id
IdValue id;
String value;
// ...
}
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.