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
When the key column of a MappedCollection is also present in the contained entity that column got select twice.
We now check if the column already gets selected before adding it to the selection.
This only works properly if the column names derived for the entity property and the key column match exactly, which might require use of a `@Column` annotation depending on the used NamingStrategy.
Closes#1073
Original pull request #1074
Reuse H2 dialect settings in R2DBC-specific H2 dialect.
Refactor ArrayColumns support classes, into toplevel-types. Let R2DBC H2 sublass the relational H2Dialect to decouple from Postgres.
See #1287
Original pull request #1297
Added `@since` comments for new methods and classes.
General formatting and code style tweaking.
Github references for new tests added.
Fixes for integration tests with various databases:
- Not all stores support submillisecond precision for Instant.
- Count for exists query doesn't work for all databases, nor does `LEAST(COUNT(1), 1)`
- MariaDB defaults timestamp columns to the current time.
- Ordering was applied twice.
- DATETIME in SqlServer has a most peculiar preceision. We switch to DATETIME2.
Original pull request #1195
See #1192
We now use the AOT infrastructure of Spring Framework 6 and data commons to provide AOT support building the foundation for native image compilation.
Additionally we register hints for GraalVM native image.
Update auditing configuration to avoid inner bean definitions.
See: #1269
Introduces the BatchedActions abstraction to encapsulate the different ways singular actions get combined into batched actions.
Original pull request #1230
Original pull request #1229
Original pull request #1228
Original pull request #1211
Remove behavior from WritingContext for creating InsertBatch in favor of SaveMergedAggregateChange.
Update all save paths to use SaveMergedAggregateChange.
+ Update #populateIdsIfNecessary return type from T to List<T>
Pull out an abstract BatchWithValue class from InsertBatch to use it for batching root inserts as well.
Rename InsertBatch to BatchInsert
Rename AggregateChangeWithRoot to RootAggregateChange.
Original pull request #1211
The `@ReadOnlyProperty` annotation is now honoured for references to entities or collections of entities.
For tables mapped to such annotated references, no insert, delete or update statements will be created.
The user has to maintain that data through some other means.
These could be triggers or external process or `ON DELETE CASCADE` configuration in the database schema.
Closes#1249
Original pull request #1250
+ Copy logic from QueryMapper#convertToJdbcValue to resolve Iterable
arguments on findBy* query methods to resolve the same for @Query.
+ Use parameter ResolvableType instead of Class to retain generics info.
Original pull request #1226Closes#1212