Commit Graph

2071 Commits

Author SHA1 Message Date
Jens Schauder
9deadf64d0 Fix the example for spring version configuration.
Closes #1848
2024-08-05 12:34:16 +02:00
Jens Schauder
46d0a0629b Polishing.
Minor formatting.
Adding author tag in Javadoc.
Fixing warnings.

Original pull request #1844
2024-08-05 11:27:49 +02:00
sven.rienstra
b11b85aef9 Add support for CASE statement in select and order by clauses.
Original pull request #1844
2024-08-05 11:27:49 +02:00
Eric Haag
1a860bfd3f Migrate build to Spring Develocity Conventions extension.
Also adopt Develocity environment variables.

Original pull request #1847
2024-08-05 11:27:42 +02:00
Sanghyuk Jung
ec3c7081a8 Remove duplicated "the" in JavaDoc.
Original pull request #1840
2024-08-02 13:22:42 +02:00
Mark Paluch
122c51fb90 Bundle Javadoc with Antora documentation site.
Closes #1846
2024-07-31 15:12:34 +02:00
Mark Paluch
4978b4c0e3 Polishing.
Correctly assign SQL type for tuples.

See #1323
Original pull request: #1838
2024-07-23 13:42:37 +02:00
Mark Paluch
f0d3b5e425 Polishing.
Refactor convertAndAddParameter method to writeValue(…) decoupling responsibilities for a clearer value conversion code path. Also, refactor collection conversion to functional callback-style and extend test assertions.

See #1323
Original pull request: #1838
2024-07-22 15:05:19 +02:00
Jens Schauder
8241aa1222 Allow passing of tuples to repository query methods.
Closes #1323
Original pull request: #1838
2024-07-22 15:05:18 +02:00
Jens Schauder
23d91d62bb Run test only on HsqlDb.
JdbcRepositoryEmbeddedIntegrationTests no longer runs for all databases, since it doesn't tests anything specific to differen RDBMSs.
Therefore the test also got renamed.

See #1565
2024-07-17 11:18:17 +02:00
Jens Schauder
b3a1dc5638 Consider sanitised names when copying parameter sources.
Closes #1565
2024-07-17 11:13:02 +02:00
Jens Schauder
1b091da5ee Polishing.
Make test methods package private.

See #1565
2024-07-17 10:57:25 +02:00
Jens Schauder
82c84342a2 Replaced all usage of catalog with schema.
Catalog was used by mistake.
Spring Data JDBC has no support for multiple catalogs, only for multiple schema.

Closes #1729
2024-07-16 09:55:47 +02:00
Jens Schauder
effc162d6f Add public factory method to SubselectExpression.
This allows using Select instances as Expression where this isn't yet anticipated.

Closes #1831
2024-07-16 09:55:47 +02:00
Jens Schauder
11384ab91f Add public factory method to SubselectExpression.
This allows using Select instances as Expression where this isn't yet anticipated.

Closes #1831
2024-07-09 13:33:18 +02:00
Oliver Drotbohm
112c084b29 Avoid double-conversion of values considered simple.
MappingJdbcConverter previously tried to create a JdbcValue for simple values via the ConversionService, only to drop the conversion result if the conversino did not result in a JdbcValue eventually. In that case it triggered an additional (same) conversion to then handle the wrapping of the conversion result into a JdbcValue manually.

This commit alters the flow so that it only triggers the conversion once and manually applies the JdbcValue wrapping only if the result of the original conversion is not a JdbcValue, yet.

Original pull request #1830
2024-07-09 10:03:26 +02:00
Jens Schauder
7bd907c5e6 Fix regression of loading empty arrays.
Closes #1826
See #1812
2024-07-02 15:07:52 +02:00
Jens Schauder
eaa3d66842 Use first column in case of duplicate columns.
Also, fallback on column names when label is not present.

See #1680
Original pull request #1825
2024-07-01 13:33:19 +02:00
Jens Schauder
faee85116a Reestablish warning on duplicate column in query.
Closes #1680
Original pull request #1825
2024-07-01 13:33:18 +02:00
Jens Schauder
5c76ddca9e Fix Auditing for embedded fields.
The reason for auditing to not work on embedded fields is that EmbeddedRelationalPersistentProperty and BasicRelationalPersisntentProperty were not considered equal even when they represent the same field.

Note: the fix is somewhat hackish since it breaks the equals contract for EmbeddedRelationalPersistentProperty.

Closes #1694
See 1545e184ef
2024-06-27 10:39:12 +02:00
Mark Paluch
ecd926ef95 Remove Slack notification.
See #1822
2024-06-20 14:26:16 +02:00
Mark Paluch
13e5414123 Switch to Broadcom docker proxy.
Closes #1822
2024-06-20 14:26:03 +02:00
Jens Schauder
236d054a0e Create one connection pool for Oracle.
We now use one pooled `DataSource` for Oracle.

This should avoid problems with the TNS-Listener, which seems to have a problem with constantly opening and closing connections.

Closes #1815
Original pull request #1816
2024-06-14 09:17:37 +02:00
Mark Paluch
cf48303ca4 Polishing.
Use ObjectUtils.isEmpty for emptiness check.

See #1737
Original pull request: #1812
2024-06-11 10:21:05 +02:00
Jens Schauder
0a1bb2b48d Refine embeddable emptiness checks to consider whether the collection holds entities.
Embedded entities which contain a empty collection of values that aren't entities are now considered empty, if this collection is empty.

Closes #1737
Original pull request: #1812
2024-06-11 10:21:05 +02:00
Paul Jones
cf26d7e6bc Add unit tests to verify DTO projection with AggregationReference.
Closes #1759
2024-06-10 15:16:27 +02:00
Mark Paluch
702002a538 Polishing.
Simplify code. Remove redundant calls.

Reformat code, remove trailing whitespaces, remove duplicate tests.

See #1802
Original pull request: #1810
2024-06-10 11:15:14 +02:00
Jens Schauder
9e12d0acd5 Fix usage of wrong id value in related selects.
In an aggregate A->B-Collection<C> a select gets executed for loading Collection<C>.
That select used the wrong ID when B had an ID with the same name as A.

This is now fixed.

Closes #1802
Original pull request: #1810
2024-06-10 11:15:13 +02:00
LLEFEVRE
97cf38f1db Upgrade Oracle Database version.
Upgrade database itself to the latest 23ai version.
The JDBC driver to 23.4.0.24.05
The R2DBC driver to 1.2.0

Closes #1804
Original pull request #1805
2024-06-06 16:07:11 +02:00
Jens Schauder
1bcc4ae906 Fix changelog link in README.
Closes #1808
2024-06-06 14:50:17 +02:00
Jens Schauder
abd0c85629 Upgrading to jsqlparser 4.9
Closes #1799
2024-05-31 17:10:14 +02:00
Jens Schauder
f1cbdd868e Making jsqlparser dependency test only.
Closes #1796
2024-05-31 10:32:14 +02:00
Mark Paluch
967f0f9179 Upgrade to SQL Server 2022-latest.
See #1768
2024-05-23 08:48:41 +02:00
Mark Paluch
83ebd1f453 After release cleanups.
See #1768
2024-05-17 11:51:34 +02:00
Mark Paluch
3680b777e7 Prepare next development iteration.
See #1768
2024-05-17 11:51:33 +02:00
Mark Paluch
1516d681d3 Release version 3.3 GA (2024.0.0).
See #1768
2024-05-17 11:49:25 +02:00
Mark Paluch
2317388de1 Prepare 3.3 GA (2024.0.0).
See #1768
2024-05-17 11:49:11 +02:00
Mark Paluch
121d3723d6 Polishing.
Reduce test element visibility.

See #1750
Original pull request: #1785
2024-05-15 14:57:00 +02:00
Mark Paluch
3224b49117 Move AggregateReference converter registration into MappingJdbcConverter.
See #1750
Original pull request: #1785
2024-05-15 14:57:00 +02:00
Jens Schauder
08710d8e16 Reuse custom converters from AggregateReferenceConverters.
Let the AggregateReference converters now receive also custom converters as delegates.
Remove the ArrayToObjectConverter which just uses the first element of the array from the DefaultConversion service.

This does NOT solve the underlying problem, of having two DefaultConversionServices at work.
One is in the store conversion, one constructed in the AbstractRelationalConverter.
Although it looks like they get merged, the former contains converters, using that ConversionService as a delegate.

Attempts were made to move AggregateReferenceConverters out of the store converters and just register them directly,
but then no custom read/write targets are detected, leading to failed conversions.
The same problem prevents a registration in CustomConversions as a Function<ConversionService, GenericConverter> or similar, which would allow late registration.
The problem here is that custom read/write targets require the function to get evaluated, before custom read/write targets can be determined.

Closes #1750
Original pull request: #1785
2024-05-15 14:56:58 +02:00
Paul-Christian Volkmer
6ae53f5577 Remove redundant code
createPersistentEntity(..) effectively only calls the overriden method.
It therefore can be deleted.

Remove error message no longer used.

Original pull request #1783
2024-04-30 09:12:54 +02:00
Mark Paluch
940062816d Polishing.
Fix since version. Update Javadoc. Adjust visibility for subclassing usage.

See #1781
2024-04-29 11:35:40 +02:00
chanhyeong-cho
ea865cafc5 Remove duplicate declaration of document() accessor in RowDocument.
Closes #1781
2024-04-29 11:35:37 +02:00
Jens Schauder
500f504496 Fix typo in documentation example.
Closes #1782
2024-04-29 11:35:34 +02:00
Jens Schauder
21e8d9a4fa Remove check for constructor parameter names.
For Kotlin constructors and possibly others parameters maybe unnamed and still work with our infrastructure.

Closes #1762
2024-04-24 12:16:27 +02:00
Jens Schauder
dafe448408 Polishing.
Add author tags.

See #1721
Original pull request #1722
2024-04-23 12:05:23 +02:00
Mark Paluch
49ddface0b Performance improvements.
Introduce caching for configured RowMapper/ResultSetExtractor.

We now create RowMapper/ResultSetExtractor instances only once if they are considered static configuration.
A configured RowMapper ref/class is always static.
A configured ResultSetExtractor ref/class is static when the extractor does not accept a RowMapper or if the RowMapper is configured.

Default mappers or projection-specific ones require ResultSetExtractor recreation of the ResultSetExtractor is configured as Class.

Reuse TypeInformation as much as possible to avoid Class -> TypeInformation conversion.
Introduce LRU cache for DefaultAggregatePath to avoid PersistentPropertyPath lookups.
Introduce best-effort quoted cache for SqlIdentifier to avoid excessive string object creation.

Closes #1721
Original pull request #1722
2024-04-23 12:05:23 +02:00
Jens Schauder
8a94345a7a Fix access of root property instead of child property.
When the child of a one-to-one relationship has an id, the value for that id gets read in the wrong way.
We get the column name for that id use that to access the value in the RowDocument.

This results in either no value at all being found or even worse, the value of a root entity with a property of same name being accessed.

This is fixed by using the full AggregatePath instead of just the property for accessing that value.

Closes #1684
Original pull request: #1775
2024-04-22 09:28:07 +02:00
Jens Schauder
30e4ddd2e6 Fix loading of 2nd level collections.
Construction of the back reference assumed that the table holding the parent of the foreign key is the actual parent property.
This is now corrected by using the correct API to identify the ancestor which holds the id.

Closes: #1692
Original pull request: #1773
2024-04-18 10:26:50 +02:00
Mark Paluch
1a9701859e After release cleanups.
See #1754
2024-04-12 10:53:00 +02:00