Commit Graph

66 Commits

Author SHA1 Message Date
Mark Paluch
e2514a3454 Allow non-domain sort orders to be used with R2dbcQueryCreator.
Closes #1548
2023-06-30 10:42:55 +02:00
Mark Paluch
f1ece358a1 Add test to verify empty enum collection behavior.
See #1544
2023-06-28 12:02:14 +02:00
Mark Paluch
6b3819c6db Use snapshot and milestone repositories instead of libs-snapshot and libs-milestone.
Closes #1527
2023-06-06 09:59:33 +02:00
George Papadopoulos
ac80e51425 Use awaitSingle operator instead of awaitFirst.
Operators `awaitFirstXxx` are going to be deprecated. Also, awaitFirst operator has no value on Mono types.

Closes: #1355

Signed-off-by: George Papadopoulos <george.719pap@gmail.com>
2023-05-26 15:18:11 +02:00
Mark Paluch
bc70b0d435 Polishing.
Reformat code.

See #1512
Original pull request: #1513
2023-05-17 10:52:52 +02:00
Jens Schauder
e0a0bb2b5d Do not prefix unsafe orer by expressions with table prefix.
Such expressions now get passed on unchanged.

This also deprecates org.springframework.data.r2dbc.query.QueryMapper.getMappedObject(Sort, RelationalPersistentEntity<?>).
It was only used in tests and translates an Order into another Order, which sounds wrong.

Closes #1512
Original pull request: #1513
2023-05-17 10:52:48 +02:00
Jens Schauder
a26557e76b Introduce SqlSort.
SqlSort allows the specification of unsafe order-by-expressions.
Order-by-expressions that are not declared unsafe are only accepted when they
either match a property or consist only of digits, letters, underscore, dot, or parentheses.

 Closes #1507
2023-05-12 10:54:17 +02:00
Oleg Oshmyan
15980174af Remove unnecessary reification from Kotlin R2DBC extensions.
This allows calling the extensions from generic code that has erased types.

Original pull request #1496
2023-04-25 09:32:04 +02:00
Mikhail2048
e106b2099b Migrated off deprecated PropertyPath methods.
Closes #1489
2023-04-12 11:08:54 +02:00
Mark Paluch
44f77215bf Reinstate integration tests for R2DBC MySQL.
Closes #1475
2023-04-11 10:50:40 +02:00
Jens Schauder
58a67ceb2a Polishing.
Added `@author` tags.
Undo the change in behaviour of getReference(IdentifierProcessing).

See #1110
Original pull request #1458
2023-03-23 10:48:31 +01:00
Kurt Niemi
18eda61f15 Deprecate redundant getReference(IdentifierProcessing) method.
Closes #1110
Original pull request #1458
2023-03-23 10:45:49 +01:00
Mark Paluch
7341a02345 Reinstate support for mariadb-r2dbc.
Closes #1364
2023-03-16 15:51:37 +01:00
Mark Paluch
637d06a9a0 Apply custom converter for Collection-like values in queries.
We now apply converters only for Collection-like values and no longer to Iterable types.

Closes #1452
2023-03-15 16:46:01 +01:00
Jens Schauder
c7e7f3eced Reenable DependencyTests.
Closes #1441
2023-03-03 12:27:49 +01:00
Mark Paluch
761f0087c8 Remove superfluous Arrays.fill(…) from ArrayUtils.getArrayClass(…).
Closes #1420
2023-01-30 15:39:32 +01:00
Mark Paluch
eed7c9dcf7 Fix BLOB reading and writing.
We now correctly consider ByteBuffer, Clob, and Blob types as additional types to read and write blob data.

Closes #1408
2023-01-10 15:09:50 +01:00
Mark Paluch
3045225207 Extend license header copyright years to 2023.
See #1400
2023-01-02 09:53:43 +01:00
Christoph Strobl
5fbc68ef87 Add Nullable annotation to parameter of overridden equals method.
Closes #1374
Original pull request #1375
2022-11-11 16:05:59 +01:00
Mark Paluch
ae1bb6a448 Fix empty collection conversion.
We now consider the target type for empty collections.

Closes #1379
2022-11-11 16:00:44 +01:00
Jens Schauder
5349fde133 Replace New and Noteworthy with links to release notes.
Closes #1351
Original pull request #1352
See spring-projects/spring-data-commons#2723
2022-11-10 10:34:31 +01:00
Mark Paluch
541eee7c8b Guard integration tests against known not-working OS variants.
Closes #1371
2022-10-31 15:02:59 +01:00
Jens Schauder
58bf5566b6 Dependency tests are now based on ArchUnit.
Replaced ignored tests with exclusion of packages and classes.
Upgraded ArchUnit dependency to 1.0.0.

Closes #1354
2022-10-10 13:27:59 +02:00
Jens Schauder
6bdc7db24b Offer a proper replacement for NamingStrategy.INSTANCE.
Closes #1350
2022-10-07 16:24:47 +02:00
Mark Paluch
795e244511 Polishing.
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.
2022-10-07 09:17:27 +02:00
Jens Schauder
40446f9ca9 The back reference generation is now configurable.
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 #1161
Closes #1147
Original pull request: #1324.
2022-10-07 09:17:05 +02:00
Jens Schauder
004804aad8 Introduce @InsertOnlyProperty.
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
2022-10-06 12:54:33 +02:00
Jens Schauder
e171d4b91b Remove non-Javadoc comments.
These are no longer serve their purpose.

Closes #1347
2022-10-05 15:34:11 +02:00
Jens Schauder
ea00369f07 Add support for factory methods.
R2DBC now supports the use of factory methods for entity creation.
Spring Data JDBC already does so via f326897950

Simply annotate a static factory method on your entity class with `@PersistenceCreator`.

Closes #1346
See https://github.com/spring-projects/spring-data-commons/issues/2476
See f326897950
2022-10-05 15:34:10 +02:00
Jens Schauder
f326897950 Removed deprecations.
Removed deprecated API and usasage of deprecated API.

Closes #1340
2022-09-28 12:02:46 +02:00
Jens Schauder
bf356f561d Clarify documentation for @Modifying.
Modifying queries are executed directly against the database.
No events or callbacks get called.
Therefore also fields with auditing annotations do not get updated if they don't get updated in the annotated query.

Closes #970
2022-09-08 15:31:17 +02:00
Joshua Sattler
f5989e1cfc Simplify code in mapping example.
Original pull request #1319
2022-08-29 09:07:48 +02:00
Mark Paluch
b46e34263e Fix COUNT/EXISTS projections for entities without an identifier.
We now issue a COUNT(1) respective SELECT 1 for COUNT queries and EXISTS queries for entities that do not specify an identifier.

Previously these query projections could fail because of empty select lists.

Closes #1310
2022-08-18 12:06:03 +02:00
Mark Paluch
92e77a47c9 Retain element ordering in AfterConvertCallbacks.
We now use concatMap on result Fluxes to retain the object order. Previously, we used flatMap on a flux that has led to changes in element ordering.

Closes #1307
2022-08-16 11:21:07 +02:00
Mark Paluch
e246cc4f59 Fix parameter binding of reused named parameters using anonymous bind markers.
We now properly bind values for reused named parameters correctly when using anonymous bind markers (e.g. ? for MySQL). Previously, the subsequent usages of named parameters especially with IN parameters were left not bound.

Closes #1306
2022-08-16 11:06:30 +02:00
Mark Paluch
0d1ba211c5 Polishing.
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
2022-08-10 13:01:02 +02:00
Jens Schauder
fcbecda414 Remove the namespace reference and links to it.
Closes #1290
See https://github.com/spring-projects/spring-data-commons/issues/2662
Original pull request #1298
2022-07-26 10:16:02 +02:00
Mark Paluch
3f256047fd Polishing.
Update tests to work with SQL server inserts.

See #1292
2022-07-15 09:08:15 +02:00
Mark Paluch
f442261936 Upgrade to R2DBC MSSQL 1.0.0.RC1.
Enable tests for SQL Server.

See #1292
2022-07-14 11:37:57 +02:00
Jens Schauder
6958157a7e Use TypeScanner instead of ClassPathScanningCandidateComponentProvider.
Closes #1288
2022-07-13 16:02:04 +02:00
Mark Paluch
df9cecbdcf Polishing.
Adopt to improved naming scheme for runtime hints.

See #1269
2022-07-13 15:03:41 +02:00
Mark Paluch
ee6c2c89b5 Upgrade to R2DBC 1.0.
Removed SQL Server and MariaDB tests for the time being until drivers are available.

Closes #1292
2022-07-13 12:10:04 +02:00
Christoph Strobl
1467d63f61 Simplify auditing setup
Use IsNewAwareAuditingHandler factory method to avoid exposing additional beans.

See: #1279
2022-07-08 11:21:37 +02:00
Mark Paluch
b71e3b9697 Polishing.
Refine name and visibility of runtime hints registrars.

See #1279
see #1269
2022-07-07 09:01:39 +02:00
Mark Paluch
70eca3a2ca Add support for R2DBC RelationalManagedTypes.
See #1279
2022-07-06 15:27:40 +02:00
Christoph Strobl
59a1761dbc Add AOT r2dbc repository support.
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.
Also update r2dbc auditing configuration to avoid inner bean definitions.

See: #1279
2022-07-06 15:01:52 +02:00
Christoph Strobl
dd3a69c20d Adopt to Reactor 2022 changes.
Closes: #1285
2022-07-05 12:30:48 +02:00
Jens Schauder
09c3088a78 Upgrade MariaDb Docker image to 10.8.3
Closes #1282
2022-07-04 12:37:46 +02:00
Jens Schauder
a263d992b7 Upgrade Oracle Docker image to version 21.3.0-slim
Closes #1268
2022-06-21 12:56:49 +02:00
Jens Schauder
0b686ef3a7 Upgrade PostgreSql Docker image to version 14.3
Closes #1267
2022-06-21 11:27:53 +02:00