Commit Graph

91 Commits

Author SHA1 Message Date
Mark Paluch
cc43be8d02 Adopt RelationalParameters and RelationalParameter to reflect the actual parameter type when using generics.
Closes #1691
2023-12-08 12:02:22 +01:00
Mark Paluch
eb6303605c Fix interface projection for entities that implement the interface.
Using as with an interface that is implemented by the entity, we no longer attempt to instantiate the interface bur use the entity type instead.

Closes #1690
2023-12-06 15:29:18 +01:00
Mark Paluch
60e22dad7f Add test to verify interface projections through R2dbcEntityTemplate.
See #1690
2023-12-06 10:25:17 +01:00
Mark Paluch
fd011ec603 Polishing.
Switch to spaces.

See #1690
2023-12-06 10:23:02 +01:00
Mark Paluch
61a145178b Use Converter-based projection for R2DBC repository queries.
Previously, we instantiated the underlying entity. Now, we either read results directly into the result type or use a Map-backed projection.

Closes #1687
2023-12-05 15:46:21 +01:00
Mark Paluch
343569bae0 Create PartTree against the domain type.
We now derive queries against the domain type and no longer using the result type to ensure query mapping and query creation against the domain type.

Closes #1688
2023-12-05 15:09:17 +01:00
Jens Schauder
e2a7508adc Switch to Testcontainers Oracle Free.
Timeout increased from the default because that cause problems on CI.
Brought SD JDBC now uses `ojdbc11` as R2DBC.

Closes #1665
Original pull request #1668
2023-11-20 15:31:36 +01:00
Mark Paluch
003531216a Polishing.
Fix line breaks.

See #1647
2023-11-06 10:35:16 +01:00
Mark Paluch
9ffbfb6f99 Improve count and exists query projections.
We now use COUNT(*) and SELECT 1 for count respective exists queries to enable database optimizers instead of using the key columns.

Closes #1647
2023-11-06 10:35:05 +01:00
Mark Paluch
5312731623 Reject Limit parameter using String-based queries.
Document limitations, add test cases for derived queries.

Closes #1654
2023-11-02 09:26:43 +01:00
Mark Paluch
5398b94020 Deprecate Basic…Converter infrastructure.
Merge basic converters into Mapping…Converters and introduce deprecated variant to provide guidance for migration off the deprecated types.

Cleanup no longer required code.

Original pull request #1618
See #1554
2023-10-13 10:28:18 +02:00
Mark Paluch
665ae6b5a8 Migrate R2DBC to read RowDocument.
Original pull request #1618
See #1554
2023-10-13 10:27:53 +02:00
Mark Paluch
a555119f8b Polishing.
Remove Jetbrains annotation usage.

Simplify code, remove code that is commented out, extract methods, pass PersistentEntity as argument instead of creating instances that hold PersistentEntity as field to align the class lifecycle with its contextual usage.

Refactor AggregateReader lifecycle, use a single instance as there is no entity-specific state attached to AggregateReader.

Add Javadoc.

See #1448
Original pull request: #1622
2023-09-27 10:05:16 +02:00
Jens Schauder
f3bc0af8c4 Polishing.
Simplify ValueFunction mapping. Remove invariants of findBy SQL generation in favor of the Condition-based variant. Reduce visibility. Change return value of AggregateReader to List

See #1601
Original pull request: #1617
2023-09-26 14:36:47 +02:00
Jens Schauder
0fdeaebbee Add support for arbitrary where clauses in Single Query Loading.
Closes #1601
Original pull request: #1617
2023-09-26 14:36:46 +02:00
Mark Paluch
bd1c670d55 Add support for fluent limit(int) and scroll(OffsetScrollPosition) to Query by Example queries.
Closes #1609
2023-09-14 08:40:56 +02:00
valery1707
6d1d96681f Remove an extra level in the class hierarchy.
Closes #1574
2023-09-13 15:10:36 +02:00
Mark Paluch
d6d99571b1 Introduce MappingRelationalConverter.
Add sophisticated converter to read aggregates from a RowDocument including support for maps, collections, subdocuments, and embeddables considering registered converters.
Use ResultSetRowDocumentExtractor to extract result multi-sets into RowDocument and then later apply object mapping.

Original pull request #1604
Closes #1586
2023-09-08 16:04:12 +02:00
Mark Paluch
879984d2b6 Polishing.
Push JDBC-specific simple types into JdbcPostgresDialect instead of having these in the top-level dialect that shouldn't be tied to any driver technology.

Introduce profile to run Postgres tests only.
2023-09-06 14:54:09 +02:00
Mark Paluch
99a8b01809 Harmonize content.
Refactor content to a natural flow, remove duplications, extract partials.

See #1597
2023-09-01 11:14:02 +02:00
Mark Paluch
4202b090ed Migrate documentation to Antora.
Closes #1597
2023-08-31 11:56:42 +02:00
Mark Paluch
f71b41fd2c Correctly convert enum array values.
We now correctly convert array write values. Previously, enum arrays were converted to null as these fell through the entity conversion.

Closes #1593
2023-08-23 15:42:41 +02:00
Christoph Strobl
e9e21c5918 Update broken links in Javadoc.
Closes: #1578
2023-08-03 09:28:39 +02:00
Jens Schauder
d00e928db5 Introduce AggregatePath.
AggregatePath replaces PersistentPropertyPathExtension.
It gets created and cached by the RelationalMappingContext, which should be more efficient and certainly looks nicer.

Closes #1525
Original pull request #1486
2023-07-21 17:39:17 +02:00
Jens Schauder
cf126d2d42 Remove lombok annotations.
Closes #1557
2023-07-10 14:57:19 +02:00
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