Before this fix, whenever a column of an inline query was rendered the `InlineQuery` and all its children were visited, resulting in spurious output.
This is no prevented by injecting a NoopVisitor.
Closes: #1362
Original pull request: #1368
This allows ordering by functions like:
ORDER BY GREATEST(table1.created_at, table2.created_at) ASC
or by arbitrary SQL snippets
orderBy(OrderByField.from(Expressions.just("1")).asc()) => ORDER BY 1 ASC
Original pull request #1348
Do not expose setForeignKeyNaming methods on NamingStrategy to make less assumptions about how a naming strategy gets implemented. Provide getRequiredLeafEntity method on PersistentPropertyPathExtension to reduce null and state assertion checks.
Refine getTableName/getQualifiedTableName approach to reduce API surface and avoid deprecations.
See #1147
Original pull request: #1324.
The new default is to take `@Table` annotations into account.
The behaviour can be configured by setting the `foreignKeyNaming` property on the `RelationalMappingContext`.
Closes#1162
See #1147
Original pull request: #1324.
The default version is the behavior that existed so far:
The back reference is the table name as generated by the `NamingStrategy` without taking `@Table` annotations into account.
The new alternative is to take `@Table` into account.
The behavior can be configured by setting the `foreignKeyNaming` property on the `RelationalMappingContext`.
Closes#1161Closes#1147
Original pull request: #1324.
You may now annotate properties of the aggregate root with `@InsertOnlyProperty`.
Properties annotated in such way will be written to the database only during insert operations, but they will not be updated afterwards.
Closes#637
Original pull request #1327
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
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