Commit Graph

1902 Commits

Author SHA1 Message Date
Jens Schauder
9e795d1349 Polishing.
Add github references to tests.

See #1446
See #1448
Original pull request: #1622
2023-09-27 10:05:06 +02:00
Jens Schauder
9e41d25d15 Support Single Query Loading for aggregates with more than one collection.
Closes #1448
Original pull request: #1622
2023-09-27 10:04:55 +02:00
Mark Paluch
8fa9e3e1d5 Polishing.
Simplify type and interface arrangement.

See #1601
Original pull request: #1617
2023-09-26 14:40:01 +02:00
Mark Paluch
7b27d0e08c Add JMH benchmarks and optimizations to affected components.
See #1601
Original pull request: #1617
2023-09-26 14:40:01 +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
Jens Schauder
6fb6110ca0 Remove dialect dependency from QueryMapper.
See #1601
Original pull request: #1617
2023-09-26 14:36:09 +02:00
Mark Paluch
610bc4521d Refine JDBC integration tests.
Introduce composed annotations and conditions to deduplicate annotations required for a test, to express database runtime conditions and database activation.
Simplify test configuration.
Split tests into unit test and integration test run.

Original pull request #1621
Closes #1620
2023-09-22 14:11:30 +02:00
Mark Paluch
1e20a32352 Polishing.
Tweak naming. Refine methods to static ones and collapse into a single method.

See #1615
2023-09-20 09:14:29 +02:00
Jens Schauder
bc644aa71c Fix RowDocumentIterator.hasNext.
This properly fixes the test setup, taking into account that @ActiveProfile by default replaces any profiles set via environment variable or system property.
It turns out that the hasNext calculation in RowDocumentIterator was wrong because

a) isBeforeFirst and isBeforeLast return both false when the ResultSet is empty.
b) isBeforeFirst and isBeforeLast aren't necessarily implemented for all ResultSets and for example DB2s ResultSet implementation don't support it by default.

Closes #1615
2023-09-20 09:14:29 +02:00
Mark Paluch
8bb72665f1 After release cleanups.
See #1592
2023-09-15 15:06:53 +02:00
Mark Paluch
813fdf2a31 Prepare next development iteration.
See #1592
2023-09-15 15:06:53 +02:00
Mark Paluch
c8de948d3e Release version 3.2 M3 (2023.1.0).
See #1592
2023-09-15 15:06:53 +02:00
Mark Paluch
3b9e0626da Prepare 3.2 M3 (2023.1.0).
See #1592
2023-09-15 15:06:53 +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
5fd9951060 Fix links to spring.io docs.
Closes #1571
2023-09-13 15:08:04 +02:00
Mark Paluch
c50942a2a8 Polishing.
Use dynamic copyright year for docs.

See #1597
2023-09-11 09:00:00 +02:00
Jens Schauder
4cf07be37c Polishing.
Original pull request #1604
See #1586
2023-09-08 16:08:07 +02:00
Jens Schauder
f60044225f Remove external column name prefixing for embedded entities.
Original pull request #1604
See #1586
2023-09-08 16:08:06 +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
Jens Schauder
48b037fb9b Fix test setup for Single Query Loading.
The construction of the DataAccessStrategy happened before the MappingContext was properly setup.
This is now fixed.
A test utilizes Single Query Loading, if it activates the profile singleQueryLoading

Closes #1606
2023-09-08 12:10:05 +02:00
Mark Paluch
24d3584488 Polishing.
Update documentation URL.

See #1597
2023-09-08 11:57:17 +02:00
Mark Paluch
2c6dbeeea3 Switch Postgres driver dependency from test to optional dependency.
See #1567
Original pull request: #1570
2023-09-06 15:35:41 +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
8e6f33e071 Add support for Postgres UUID arrays using JDBC.
We now use Postgres' JDBC drivers TypeInfoCache to register and determine array types including support for UUID.

Closes #1567
2023-09-06 14:53:45 +02:00
Greg L. Turnquist
b08dde9876 Update CI properties.
See #1592
2023-09-05 13:25:24 -05: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
Julia Lee
a6c855f45e After release cleanups.
See #1562
2023-08-18 08:59:41 -04:00
Julia Lee
2b1d2c834c Prepare next development iteration.
See #1562
2023-08-18 08:59:38 -04:00
Julia Lee
cb7b4679c5 Release version 3.2 M2 (2023.1.0).
See #1562
2023-08-18 08:50:33 -04:00
Julia Lee
0c39621c73 Prepare 3.2 M2 (2023.1.0).
See #1562
2023-08-18 08:49:41 -04:00
Mark Paluch
518e49d81d Introduce RowDocumentExtractor.
Transform the tabular structure into a graph of RowDocument associated with nested documents and lists.

Add container license acceptance for updated container images.

See #1446
See #1450
See #1445
Original pull request: #1572
2023-08-15 10:16:41 +02:00
Mark Paluch
d9b548815c Polishing.
Extract Single Query Loading branching to SingleQueryFallbackDataAccessStrategy. Inline AggregateReaderFactory into SingleQueryDataAccessStrategy. Move CachingSqlGenerator to AggregateReader as caching root.

Introduce DataAccessStrategyFactory to encapsulate configuration.

Fix Javadoc tag ordering. Remove superfluous MappingContext parameters when Converter is available. Simplify code. Reformat code.

Reorder Functions methods. Tweak Javadoc, move composite function into SingleQuerySqlGenerator.

See #1446
See #1450
See #1445
Original pull request: #1572
2023-08-15 10:16:41 +02:00
Jens Schauder
93821f5f42 Enable Single Query Loading for simple aggregates.
Single Query Loading loads as the name suggests complete aggregates using a single select.
While the ultimate goal is to support this for all aggregates, this commit enables it only for simple aggregate and also only for some operations.
A simple aggregate is an aggregate that only reference up to one other entity and does not have embedded entities.
The supported operations are those available via `CrudRepository`: `findAll`, `findById`, and `findAllByIds`.

Single Query Loading does NOT work with the supported in memory databases H2 and HSQLDB, since these do not properly support windowing functions, which are essential for Single Query Loading.

To turn on Single Query Loading call `RelationalMappingContext.setSingleQueryLoadingEnabled(true)`.

Closes #1446
See #1450
See #1445
Original pull request: #1572
2023-08-15 10:16:41 +02:00
Julia Lee
dffde372f9 Update CI properties.
See #1562
2023-08-14 12:15:34 -04:00
Julia Lee
fd66f3f0f2 Upgrade to Maven Wrapper 3.9.4.
See #1585
2023-08-14 08:53:30 -04: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
Mark Paluch
7d5bc1cbd9 After release cleanups.
See #1511
2023-07-14 14:57:13 +02:00
Mark Paluch
1ccaaf3cd5 Prepare next development iteration.
See #1511
2023-07-14 14:57:11 +02:00
Mark Paluch
f6f4ad39a0 Release version 3.2 M1 (2023.1.0).
See #1511
2023-07-14 14:53:19 +02:00
Mark Paluch
290fea4ae3 Prepare 3.2 M1 (2023.1.0).
See #1511
2023-07-14 14:52:14 +02:00
Mark Paluch
28adfe0c32 Upgrade to latest R2DBC drivers.
Closes #1559
2023-07-14 10:21:10 +02:00
Greg L. Turnquist
de71874b9c Ensure Testcontainers works properly with MS SQL Server on CI.
See #1558.
2023-07-10 14:03:17 -05:00
Jens Schauder
cf126d2d42 Remove lombok annotations.
Closes #1557
2023-07-10 14:57:19 +02:00
Mark Paluch
56ec491724 Fix tests after dependency upgrades.
See #1541
2023-07-04 14:39:23 +02:00
Jorge
f3f34e593b Add CodeQL workflow.
Closes ##1543
2023-07-04 08:07:34 +02:00