Releases: eclipse-ee4j/eclipselink
Release list
5.0.1-RC2
What's Changed
- Bump the dependencies group across 1 directory with 7 updates by @dependabot[bot] in #2746
Full Changelog: 5.0.1-RC1...5.0.1-RC2
5.0.1-RC1
What's Changed
- [MASTER] Support new way of UUID handling for H2 database by @arjantijms in #2702
- Bump the maven-plugins group across 1 directory with 2 updates by @dependabot[bot] in #2705
- Bump the dependencies group across 1 directory with 2 updates by @dependabot[bot] in #2706
- Consolidate dbdrivers used for testing by @lukasj in #2698
- [master] Add BINARY(16) mapping for UUID columns in SQL Server by @pardhiv-krishna in #2708
- #2699: preserve more specific argument field metadata in DatabaseQuery.rowFromArguments by @hgwr in #2700
- [master] Fix reoccurrence of invalid PostgreSQL DDL generation by EclipseLink by @pardhiv-krishna in #2707
- Bump the dependencies group with 3 updates by @dependabot[bot] in #2710
- Bump the dependencies group across 1 directory with 5 updates by @dependabot[bot] in #2718
- Bump org.codehaus.cargo:cargo-maven3-plugin from 1.10.26 to 1.10.27 in the maven-plugins group by @dependabot[bot] in #2711
- Bump the dependencies group with 6 updates by @dependabot[bot] in #2723
- [master] Fix
CASEargument type mismatch in Oracle DB by @pardhiv-krishna in #2722 - [master] Add Number type support to Year conversion and fix exception class constant by @pardhiv-krishna in #2726
- Bump the dependencies group across 1 directory with 13 updates by @dependabot[bot] in #2734
- Bump org.postgresql:postgresql from 42.7.10 to 42.7.11 in /boms/dependencies by @dependabot[bot] in #2735
- Update pgsql.version from 42.7.4 to 42.7.11 by @lukasj in #2737
Full Changelog: 5.0.0...5.0.1-RC1
5.0.0
EclipseLink is an open-source Java ORM (Object-Relational Mapping) framework and an implementation of the Jakarta Persistence specification. It was originally developed by Oracle as TopLink before being donated to the Eclipse Foundation.
It handles the mapping between Java objects and relational database tables, letting developers work with plain Java objects (entities) instead of writing raw SQL.
Release Overview
EclipseLink 5.0.0 is a major modernization release focused on support for Jakarta Persistence 3.2 / Jakarta EE 11, including new JPQL and Criteria capabilities, updated persistence.xml and canonical-model support, additional basic type support such as Instant and Year, and record support for embeddables.
The release also advances platform readiness with a modern JDK baseline, JDK 21 support, and refreshed bytecode/tooling dependencies.
In addition, it delivers a broad set of query correctness, database-platform, and runtime performance improvements, including Oracle 23 support, multiple JPQL/parser fixes, optimizations in UnitOfWork and locking behavior, and the ability to build (passing all internals tests) on IBM DB2.
What's Changed
EclipseLink 5.0.0 changes grouped by area
1. Jakarta Persistence 3.2 support
1.1 Core API and metadata support
- Jakarta Persistence API / implementation batches: #1930, #1942, #1974, #1996, #2015, #2027, #2082, #2107
EntityManagerFactory.withTransaction()default implementation: #1884PersistenceConfiguration/ EMF bootstrapping: #2036, #2280, #2505- EMF naming / cache-mode fixes and implementation: #2103, #2104, #2589
- Canonical model / ORM / persistence metadata: #2095, #2097, #2105, #2106
- Additional JPA 3.2 tests: #2121, #2502, #2503, #2521, #2622, #2629
1.2 New JPQL and query-language features
- JPQL 3.2 and string concat operator
||: #1903 REPLACE(): #1924LEFT()/RIGHT(): #1933UNION,INTERSECT,EXCEPT,CAST: #1937ID()/VERSION(): #2108NamedNativeQuery.entities(),classes(),columns(): #2500
1.3 Modern Java type support
java.time.Instant/java.time.Yearbasic types: #2078, #2081java.lang.Recordsupport in@Embedded: #2163- Embeddable record tests: #2527, #2529
- Query fix for embeddable records: #2604
@Versionwithjava.time.LocalDateTime: #2347, #2349, #2359@EnumeratedValuesupport and follow-up fixes: #2484, #2504, #2648
1.4 Generator and metadata model changes
TableGenerator/SequenceGeneratoroptional name: #2532- Package-level
TableGenerator/SequenceGenerator: #2544 TableGeneratorprecision propagation: #2457TableGeneratorregression in multitenancy-per-table: #2641
2. JPQL, Criteria, and query processing improvements
2.1 JPQL aliasing and identification-variable fixes
- Generated default
thisalias in simpleSELECT: #2102 thisvariable fixes: #2224- Generated
thisalias withWHEREin braces: #2240 - Further generated
thisalias bugfixes: #2254 - Enum attribute broken when identifier omitted or
this.used: #2268 - Embeddable / relational attributes without optional entity identification variable: #2278
- Generated
thisalias in@NamedQuery: #2360
2.2 ID(...), embeddables, and update-query fixes
ID(this)as function argument: #2287SELECT ID(entityVar)/ incompleteIdClassfixes: #2384, #2409, #2624, #2657- Update JPQL queries for embeddables missing fields: #2345
- JPQL update with nested embeddables: #2407
- JPQL update of embeddable attribute /
IllegalArgumentException: #2567 - Null embedded object update on PostgreSQL: #2520
@Embeddablemapping resolution inObjectExpression: #2419
2.3 Criteria and expression-engine fixes
- Criteria queries with many joins: #2129
- Identifier clashes with function names: #2218
- Invalid query key in expression: #2377
EXTRACT/ datetime-field fixes: #2464JPQL NEWoperator validation for unsupported types: #2468FunctionExpressionreturn type /XmlEnumhandling: #1923ReportQuerywithBatchFetch.IN: #2303- Clone
batchQueryfor nested lazy instantiation: #2367 ExpressionQueryMechanismrefactor: #2061ExpressionOperator.printCollectionNPE: #2139
2.4 Parameter binding and null-handling improvements
- Empty collection /
nullparameter inINexpression: #2054 - Escape
?using??in SQL expression: #1935 queryTimeoutUnitnot copied in update execution: #2161- Optimistic lock exception with empty parameter values: #2383
- JPQL parameter type inference for
IS NULL: #2633 - Parameter validation only on first occurrence: #2661
- Preserve specific field type for null parameter binding: #2683
3. Runtime behavior, performance, and concurrency
3.1 Performance improvements
5.0.0-RC2
What's Changed
- Move core to JUnit6 by @lukasj in #2689
- Make LRG tests passing on Derby by @lukasj in #2690
- Bump the dependencies group with 11 updates by @dependabot[bot] in #2691
- [master] Fixes extra spaces in DDL generated by DB2Platform and its subclasses by @pardhiv-krishna in #2694
Full Changelog: 5.0.0-RC1...5.0.0-RC2
5.0.0-RC1
What's Changed
- [master] Support UUID through the more efficient BINARY(16) or equivalent by @rfelcman in #2611
- [master] Remove usages of FieldTypeDefinition from schema framework by @rfelcman in #2613
- [master] EclipseLink generates invalid PostgreSQL DDL
(INTEGER SERIAL NOT NULL)- bugfix by @pardhiv-krishna in #2617 - [master] Bugfix - Query on entity with embeddable record fails with "A reference class must be provided" by @pardhiv-krishna in #2604
- [master] Fixes NullPointerException when inserting empty string into @lob field on Oracle 23c by @pardhiv-krishna in #2619
- [master] fix misleading SQL generated with LOCAL TIME in Oracle DB by @pardhiv-krishna in #2620
- [master] Jakarta Persistence 3.2 Tests (without persistence.xml file) by @rfelcman in #2622
- bugfix: using
computeRootURL()in primary location computation as w… by @lprimak in #2612 - [master] In test, send REORG for DB2 to finish table modification by @arjantijms in #2597
- [master] Bind partial parameters for DB2 by @arjantijms in #2593
- [Master] Issue Fix for #2211 (SELECT ID(entityvar) only returns part of IdClass) by @anija-anil in #2624
- Bump com.microsoft.sqlserver:mssql-jdbc from 12.8.1.jre11 to 12.8.2.jre11 in /boms/dependencies by @dependabot[bot] in #2588
- Fix for jmsSubscriberNotClosedOnServerShutDown by @vavishal in #2626
- [master] Remove usages of FieldTypeDefinition from the schemaframework by @rfelcman in #2628
- [MASTER] Pull new way of UUID handling from Derby to DB2 parent by @arjantijms in #2630
- fix org.eclipse.persistence.testing.tests.jpa.persistence32.nofile.En… by @lprimak in #2629
- [master] Add support for wait/nowait in for update for DB2 11.5.6+ by @arjantijms in #2631
- Add DB2 and MySQL convenience profiles for starting DB by @arjantijms in #2634
- Bump ch.qos.logback:logback-core from 1.5.19 to 1.5.25 in /boms/dependencies by @dependabot[bot] in #2625
- fixes #2636: ModelGen: The getter method on entity class does not have a corresponding setter method defined by @lukasj in #2640
- #2627: Regression in eclipselink 4.0.9 and 5+ for TableGenerator in multitenancy per table by @lukasj in #2641
- Revert fix for bug 426852 which caused issues in existing applications by @vavishal in #2646
- #2644: PostgreSQL10Platform, fix the printFieldIdentityClause by @lukasj in #2647
- #2595: @EnumeratedValue String type failed by @lukasj in #2648
- #2650: plain text password from properties is no longer working by @lukasj in #2651
- #2635: Memory leak on multitenant using entity with bean validation constraint by @lukasj in #2652
- Make sure build passes with Postgres by @lukasj in #2653
- remove few warnings from the build by @lukasj in #2655
- Fix JPQL parameter type inference for IS NULL by @hgwr in #2633
- #2600: QueryImpl.setParameterInternal validates parameter type only for first occurrence by @lukasj in #2661
- Simplify Maven configuration in dependabot.yml by @lukasj in #2662
- Bump the actions-dependencies group with 4 updates by @dependabot[bot] in #2663
- filter out oradb and inject from dbot updates by @lukasj in #2666
- avoid copying test resources twice by @lukasj in #2667
- Bump the maven-plugins group with 30 updates by @dependabot[bot] in #2664
- update dependabot config by @lukasj in #2669
- adopt parent 2.0.0 by @lukasj in #2672
- Bump org.apache.felix:maven-bundle-plugin from 6.0.0 to 6.0.2 in the maven-plugins group by @dependabot[bot] in #2670
- adopt expressly, update bean validator for tests by @lukasj in #2674
- Bump the dependencies group across 1 directory with 49 updates by @dependabot[bot] in #2675
- dependency updates by @lukasj in #2676
- Code cleanup in ClassDescriptor and ReturningPolicy by @lukasj in #2678
- Bump com.puppycrawl.tools:checkstyle from 13.2.0 to 13.3.0 in the dependencies group by @dependabot[bot] in #2680
- [master] ASM (org.eclipse.persistence.asm implementation) removal by @rfelcman in #2008
- move OXM tests to its own project by @lukasj in #2679
- [master] Jenkins PR pipeline - OXM tests to its own project by @rfelcman in #2681
- Bump org.eclipse.ee4j:project from 2.0.0 to 2.0.1 in the dependencies group by @dependabot[bot] in #2682
- cyclonedx.skipNotDeployed property no longer needed, by @lukasj in #2684
- [Master] Issue Fix for #2211 by @anija-anil in #2657
- Bump org.jruby:jruby-complete from 10.0.3.0 to 10.0.4.0 in the dependencies group by @dependabot[bot] in #2685
- Bump org.apache.maven.plugins:maven-resources-plugin from 3.4.0 to 3.5.0 in the maven-plugins group by @dependabot[bot] in #2686
- #2632: keep specific field type for null parameter binding by @hgwr in #2683
- [master] Maven build - promotion version set fix by @rfelcman in #2687
- Bump com.ibm.db2:jcc from 12.1.3.0 to 12.1.4.0 in the dependencies group by @dependabot[bot] in #2688
New Contributors
Full Changelog: 5.0.0-B13...5.0.0-RC1
5.0.0-B13
What's Changed
- [master] Implement ClearDatabaseSchema for DB2 by @arjantijms in #2552
- [master] ASM 9.9.0 upgrade by @rfelcman in #2557
- [master] Minor message changes by @pardhiv-krishna in #2562
- [maven] org.eclipse.persistence.core Module - org.eclipse.persistence.logging package cleanup + ArchUnit introduction by @rfelcman in #2563
- [master] StringHelper refactor - unused methods removal or replacement by default from java.lang.String by @rfelcman in #2561
- [master] MOXy JPMS/module-info export fix by @rfelcman in #2564
- [master] DB2 does not support fractional seconds for TIME, but does for TIMESTAMP - update test by @arjantijms in #2565
- Added Supplier support for log messages into SessionLog. by @Tomas-Kraus in #2568
- [master] Deprecate usage of Sequencing API in the schemaframework model for removal by @rfelcman in #2571
- [master] Jakarta Persistence 3.2 - Allows usage of TableGenerator and SequenceGenerator at the java package level by @rfelcman in #2544
- [master] EclipseLink IllegalArgumentException on JPQL update of embeddable attribute - bugfix and unit test by @rfelcman in #2567
- Javadoc cleanup in logger. by @Tomas-Kraus in #2570
- [master] Introduce BOMs for the EclipseLink project by @rfelcman in #2573
- Helper and JCEEncryptor API cleanup without removal of deprecated methods. by @Tomas-Kraus in #2574
- [master] StringHelper partial removal in org.eclipse.persistence.internal.jpa.metadata package by @rfelcman in #2576
- Bump ch.qos.logback:logback-core from 1.5.13 to 1.5.19 in /boms/dependencies by @dependabot[bot] in #2580
- [master] Implements setCacheRetrieveMode and setCacheStoreMode methods by @pardhiv-krishna in #2589
- [master] For DB2, no fractions for TIME, and no WITH_TIMEZONE by @arjantijms in #2591
- [master] Schema Framework update (#2575) - backport from 4.0 by @rfelcman in #2581
- [master] Code refactor - Exceptions move, Constants, remove Vector, deprecated code removal by @rfelcman in #2599
- [master] Maven Build - Fix release process by @rfelcman in #2605
- [master] Revert Introduce BOMs for the EclipseLink project (#2573) by @ajaypaul-ibm in #2603
- Bump ch.qos.logback:logback-core from 1.5.13 to 1.5.19 by @dependabot[bot] in #2606
- Bump com.microsoft.sqlserver:mssql-jdbc from 12.8.1.jre11 to 12.8.2.jre11 by @dependabot[bot] in #2607
- [master] Introduce BOMs for the EclipseLink project 2.0 by @rfelcman in #2608
New Contributors
- @arjantijms made their first contribution in #2552
Full Changelog: 5.0.0-B11...5.0.0-B13
5.0.0-B12
What's Changed
- [master] Implement ClearDatabaseSchema for DB2 by @arjantijms in #2552
- [master] ASM 9.9.0 upgrade by @rfelcman in #2557
- [master] Minor message changes by @pardhiv-krishna in #2562
- [maven] org.eclipse.persistence.core Module - org.eclipse.persistence.logging package cleanup + ArchUnit introduction by @rfelcman in #2563
- [master] StringHelper refactor - unused methods removal or replacement by default from java.lang.String by @rfelcman in #2561
- [master] MOXy JPMS/module-info export fix by @rfelcman in #2564
- [master] DB2 does not support fractional seconds for TIME, but does for TIMESTAMP - update test by @arjantijms in #2565
- Added Supplier support for log messages into SessionLog. by @Tomas-Kraus in #2568
- [master] Deprecate usage of Sequencing API in the schemaframework model for removal by @rfelcman in #2571
- [master] Jakarta Persistence 3.2 - Allows usage of TableGenerator and SequenceGenerator at the java package level by @rfelcman in #2544
- [master] EclipseLink IllegalArgumentException on JPQL update of embeddable attribute - bugfix and unit test by @rfelcman in #2567
- Javadoc cleanup in logger. by @Tomas-Kraus in #2570
- [master] Introduce BOMs for the EclipseLink project by @rfelcman in #2573
- Helper and JCEEncryptor API cleanup without removal of deprecated methods. by @Tomas-Kraus in #2574
- [master] StringHelper partial removal in org.eclipse.persistence.internal.jpa.metadata package by @rfelcman in #2576
- Bump ch.qos.logback:logback-core from 1.5.13 to 1.5.19 in /boms/dependencies by @dependabot[bot] in #2580
- [master] Implements setCacheRetrieveMode and setCacheStoreMode methods by @pardhiv-krishna in #2589
- [master] For DB2, no fractions for TIME, and no WITH_TIMEZONE by @arjantijms in #2591
- [master] Schema Framework update (#2575) - backport from 4.0 by @rfelcman in #2581
- [master] Code refactor - Exceptions move, Constants, remove Vector, deprecated code removal by @rfelcman in #2599
- [master] Maven Build - Fix release process by @rfelcman in #2605
- [master] Revert Introduce BOMs for the EclipseLink project (#2573) by @ajaypaul-ibm in #2603
- Bump ch.qos.logback:logback-core from 1.5.13 to 1.5.19 by @dependabot[bot] in #2606
- Bump com.microsoft.sqlserver:mssql-jdbc from 12.8.1.jre11 to 12.8.2.jre11 by @dependabot[bot] in #2607
- [master] Introduce BOMs for the EclipseLink project 2.0 by @rfelcman in #2608
New Contributors
- @arjantijms made their first contribution in #2552
Full Changelog: 5.0.0-B11...5.0.0-B12
4.0.9
What's Changed
- [4.0] Version change to 4.0.9-SNAPSHOT by @rfelcman in #2538
- [4.0] JDBC prepared statements aren't closed - bugfix 2.0 (#2535) - backport from master by @rfelcman and @arjantijms in #2540
- [4.x] JavaLog moved to org.eclipse.persistence.logging.jul package. by @Tomas-Kraus in #2539
- [4.x] Accessor and Session removal from AbstractSessionLog and SessionLogEntry. (#2543) by @Tomas-Kraus in #2546
- [4.0] Maven build - Snapshots publishing change - backport from master by @rfelcman in #2548
- [4.0] Maven build - Release publishing change - backport from master by @rfelcman in #2553
- [4.0] ASM 9.9.0 upgrade by @rfelcman in #2558
- [4.x] Accessor and Session removal from Logs. by @Tomas-Kraus in #2566
- [4.0] StringHelper refactor - unused methods marked as deprecated and usage replacement by default one from java.lang.String by @rfelcman in #2569
- [4.x] Helper and JCEEncryptor API cleanup without removal of deprecated methods. by @Tomas-Kraus in #2578
- [4.x] Deprecate usage of Sequencing API in the schemaframework model for removal (#2571) by @Tomas-Kraus in #2579
- [4.0] Schema Framework update by @rfelcman in #2575
Full Changelog: 4.0.8...4.0.9
4.0.9-RC1
What's Changed
- [4.0] Version change to 4.0.9-SNAPSHOT by @rfelcman in #2538
- [4.0] JDBC prepared statements aren't closed - bugfix 2.0 (#2535) - backport from master by @rfelcman in #2540
- [4.x] JavaLog moved to org.eclipse.persistence.logging.jul package. by @Tomas-Kraus in #2539
- [4.x] Accessor and Session removal from AbstractSessionLog and SessionLogEntry. (#2543) by @Tomas-Kraus in #2546
- [4.0] Maven build - Snapshots publishing change - backport from master by @rfelcman in #2548
- [4.0] Maven build - Release publishing change - backport from master by @rfelcman in #2553
- [4.0] ASM 9.9.0 upgrade by @rfelcman in #2558
- [4.x] Accessor and Session removal from Logs. by @Tomas-Kraus in #2566
- [4.0] StringHelper refactor - unused methods marked as deprecated and usage replacement by default one from java.lang.String by @rfelcman in #2569
- [4.x] Helper and JCEEncryptor API cleanup without removal of deprecated methods. by @Tomas-Kraus in #2578
- [4.x] Deprecate usage of Sequencing API in the schemaframework model for removal (#2571) by @Tomas-Kraus in #2579
- [4.0] Schema Framework update by @rfelcman in #2575
Full Changelog: 4.0.8...4.0.9-RC1
5.0.0-B11
What's Changed
- JPMS fix in module-info.java for eclipselink.jar bundle and JPA-RS server by @rfelcman in #2496
- [master] Jakarta Persistence 3.2 - additional JUnit tests for isInstance(Object entity, Class<?> entityClass) and getClass(T entity) in PersistenceUnitUtil by @rfelcman in #2502
- [master] Jakarta Persistence 3.2 - additional JUnit tests for jakarta.persistence.criteria.CriteriaBuilder.concat(java.util.List<jakarta.persistence.criteria.Expression<java.lang.String>>) implementation by @rfelcman in #2503
- [master] Jakarta Persistence 3.2 - additional JUnit tests for API to obtain EntityManagerFactory using PersistenceConfiguration by @rfelcman in #2505
- [master] Jakarta Persistence 3.2 - Persistence unit deployment fails when using @EnumeratedValue annotation #2501 - bugfix by @rfelcman in #2504
- update angus-mail by @Nutstree in #2507
- [master] Jakarta Persistence 3.2 new feature - add entities(), classes() and columns() to NamedNativeQuery by @rfelcman in #2500
- [master] SQLResultSetMappingMetadata - unused constructors removal by @rfelcman in #2511
- [master] Minor messaging improvements by @anija-anil in #2514
- [master] Platform autodetection should fail in server side environment - backport from 4.0 by @rfelcman in #2516
- [master] JPQL Update with Null Embedded Object Fails on PostgreSQL Due to Type Mismatch #2517 - bugfix by @rfelcman in #2520
- [master] Jakarta Persistence 3.2 - Entity and embeddable classes declared as static inner classes - tests by @rfelcman in #2521
- [master] Added statement cleanup into updateObjectAndRowWithSequenceNumber by @Tomas-Kraus in #2523
- Issue #2245 - test with @embeddable record by @Tomas-Kraus in #2527
- [master] Issue #2245 - test with @embeddable record 2.0 by @rfelcman in #2529
- [master] Eclipselink mishandles EXTRACT(DATE FROM X) clause in DB2 - bugfix by @pardhiv-krishna in #2533
- [master] JavaLog moved to org.eclipse.persistence.logging.jul package. by @Tomas-Kraus in #2534
- [master] JDBC prepared statements aren't closed - bugfix 2.0 by @rfelcman in #2535
- [master] Jakarta Persistence 3.2 - Makes the name member of TableGenerator and SequenceGenerator optional (implementation and unit test) by @rfelcman in #2532
- [master] JPQL EXTRACT(TIME FROM X) generates invalid SQL on DB2 - bugfix by @pardhiv-krishna in #2537
- Deprecated classes related to JavaLog removal and AbstractSessionLog cleanup by @Tomas-Kraus in #2541
- [master] Maven build - Snapshots publishing change by @rfelcman in #2545
- [master] Accessor and Session removal from AbstractSessionLog and SessionLogEntry. by @Tomas-Kraus in #2543
- [master] Jenkin build - Release publishing change by @rfelcman in #2550
- [master] Accessor and Session removal from Logs. by @Tomas-Kraus in #2547
New Contributors
- @Nutstree made their first contribution in #2507
- @pardhiv-krishna made their first contribution in #2533
Full Changelog: 5.0.0-B10...5.0.0-B11