This is an automated email from the ASF dual-hosted git repository. pcristof pushed a commit to branch OPENJPA-2940 in repository https://gitbox.apache.org/repos/asf/openjpa.git
The following commit(s) were added to refs/heads/OPENJPA-2940 by this push: new f6f4c1a37 [OPENJPA-2940][WIP] Updated JPA to 3.2 f6f4c1a37 is described below commit f6f4c1a37ba2cc884e768783587a6adf2f58e7c1 Author: Paulo Cristovão de Araújo Silva Filho <pcris...@gmail.com> AuthorDate: Tue Jul 8 21:49:27 2025 -0300 [OPENJPA-2940][WIP] Updated JPA to 3.2 * Updated dependency version * Added API new methods to API implementation classes with methods that throw UnsupportedOperationException, except for four methods in EntityManagerImpl that required proper implementations to pass tests * Project is still passing tests on derby and postgresql, at least --- openjpa-examples/openbooks/pom.xml | 21 ++++ .../persistence/provider/DummyProvider1.java | 7 ++ .../persistence/provider/DummyProvider2.java | 7 ++ .../persistence/jdbc/meta/TestEagerDistinct.java | 10 +- .../jdbc/meta/TestEagerOuterToManyJoins.java | 24 ++-- .../persistence/jdbc/meta/TestMappedByKeyMaps.java | 7 +- .../jdbc/meta/TestMultiTableMappings.java | 2 +- .../persistence/jdbc/meta/TestNoClassColumn.java | 2 +- .../persistence/jdbc/meta/TestStateImage.java | 4 +- .../meta/vertical/TestSubclassJoinRelations.java | 2 +- .../jdbc/query/TestNamedSQLQueries.java | 2 +- .../jdbc/query/TestStringFunctions.java | 2 +- .../persistence/simple/TestJava8TimeTypes.java | 1 - .../TestPersistenceProviderFilteringTestCase.java | 6 + openjpa-persistence-locking/pom.xml | 1 + .../persistence/EntityManagerFactoryImpl.java | 86 ++++++++++++- .../openjpa/persistence/EntityManagerImpl.java | 100 ++++++++++++++- .../apache/openjpa/persistence/JPAProperties.java | 4 +- .../persistence/OpenJPAPersistenceUtil.java | 3 +- .../persistence/PersistenceProviderImpl.java | 7 ++ .../persistence/PersistenceUnitInfoImpl.java | 11 ++ .../org/apache/openjpa/persistence/QueryImpl.java | 38 ++++++ .../persistence/StoredProcedureQueryImpl.java | 38 ++++++ .../persistence/criteria/CompareByExample.java | 25 ++++ .../persistence/criteria/CriteriaBuilderImpl.java | 137 +++++++++++++++++++++ .../persistence/criteria/CriteriaQueryImpl.java | 16 +++ .../persistence/criteria/ExpressionImpl.java | 30 +++++ .../openjpa/persistence/criteria/FromImpl.java | 58 +++++++++ .../apache/openjpa/persistence/criteria/Joins.java | 30 +++++ .../openjpa/persistence/criteria/OrderImpl.java | 7 ++ .../criteria/ParameterExpressionImpl.java | 32 +++++ .../openjpa/persistence/criteria/PathImpl.java | 35 +++++- .../persistence/criteria/PredicateImpl.java | 30 +++++ .../openjpa/persistence/criteria/SubqueryImpl.java | 56 +++++++++ .../openjpa/persistence/meta/MetamodelImpl.java | 6 + openjpa-xmlstore/pom.xml | 1 + pom.xml | 2 +- 37 files changed, 804 insertions(+), 46 deletions(-) diff --git a/openjpa-examples/openbooks/pom.xml b/openjpa-examples/openbooks/pom.xml index f3df61ba4..9abcb576b 100644 --- a/openjpa-examples/openbooks/pom.xml +++ b/openjpa-examples/openbooks/pom.xml @@ -129,6 +129,7 @@ <execution> <id>genmodel</id> <phase>process-resources</phase> + <?m2e execute onConfiguration,onIncremental?> <configuration> <target> <echo>Running OpenBooks genmodel</echo> @@ -146,6 +147,7 @@ <execution> <id>enhance</id> <phase>process-classes</phase> + <?m2e execute onConfiguration,onIncremental?> <configuration> <target> <echo>Running OpenBooks Enhance</echo> @@ -163,6 +165,7 @@ <execution> <id>generate-source</id> <phase>prepare-package</phase> + <?m2e execute onConfiguration,onIncremental?> <configuration> <target> <echo>Running OpenBooks Generate Source</echo> @@ -184,6 +187,24 @@ </execution> </executions> </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>build-helper-maven-plugin</artifactId> + <executions> + <execution> + <id>add-source</id> + <phase>generate-sources</phase> + <goals> + <goal>add-source</goal> + </goals> + <configuration> + <sources> + <source>${project.build.directory}/generated-metamodel/java</source> + </sources> + </configuration> + </execution> + </executions> + </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> diff --git a/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/persistence/provider/DummyProvider1.java b/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/persistence/provider/DummyProvider1.java index 952951009..93c506c03 100644 --- a/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/persistence/provider/DummyProvider1.java +++ b/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/persistence/provider/DummyProvider1.java @@ -21,6 +21,7 @@ package org.apache.openjpa.integration.persistence.provider; import java.util.Map; import jakarta.persistence.EntityManagerFactory; +import jakarta.persistence.PersistenceConfiguration; import jakarta.persistence.spi.PersistenceProvider; import jakarta.persistence.spi.PersistenceUnitInfo; import jakarta.persistence.spi.ProviderUtil; @@ -53,4 +54,10 @@ public class DummyProvider1 implements PersistenceProvider { return null; } + @Override + public EntityManagerFactory createEntityManagerFactory(PersistenceConfiguration configuration) { + // TODO Auto-generated method stub + return null; + } + } diff --git a/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/persistence/provider/DummyProvider2.java b/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/persistence/provider/DummyProvider2.java index 3068683fe..06a3f2365 100644 --- a/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/persistence/provider/DummyProvider2.java +++ b/openjpa-integration/validation/src/test/java/org/apache/openjpa/integration/persistence/provider/DummyProvider2.java @@ -21,6 +21,7 @@ package org.apache.openjpa.integration.persistence.provider; import java.util.Map; import jakarta.persistence.EntityManagerFactory; +import jakarta.persistence.PersistenceConfiguration; import jakarta.persistence.spi.PersistenceProvider; import jakarta.persistence.spi.PersistenceUnitInfo; import jakarta.persistence.spi.ProviderUtil; @@ -53,4 +54,10 @@ public class DummyProvider2 implements PersistenceProvider { return null; } + @Override + public EntityManagerFactory createEntityManagerFactory(PersistenceConfiguration configuration) { + // TODO Auto-generated method stub + return null; + } + } diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/meta/TestEagerDistinct.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/meta/TestEagerDistinct.java index e30448234..897ce2c28 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/meta/TestEagerDistinct.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/meta/TestEagerDistinct.java @@ -104,8 +104,7 @@ public class TestEagerDistinct private void eagerParallelWithNonDistinctQuery(int fetchSize) throws Exception { OpenJPAEntityManager pm = getPM(); - OpenJPAQuery q = pm.createNativeQuery( - "stringField.startsWith ('pc')", HelperPC2.class); + OpenJPAQuery q = (OpenJPAQuery) pm.createNativeQuery("stringField.startsWith ('pc')", HelperPC2.class); //FIXME jthomas //q.setOrdering("stringField ascending"); q.getFetchPlan().setFetchBatchSize(fetchSize); @@ -144,7 +143,7 @@ public class TestEagerDistinct private void eagerParallelWithDistinctQuery(int fetchSize) throws Exception { OpenJPAEntityManager pm = getPM(); - OpenJPAQuery q = pm.createNativeQuery( + OpenJPAQuery q = (OpenJPAQuery) pm.createNativeQuery( "helperCollection.contains (h) && h.stringField == 'shared'", HelperPC2.class); //FIXME jthomas @@ -176,7 +175,7 @@ public class TestEagerDistinct private void nestedEagerParallel(int fetchSize) throws Exception { OpenJPAEntityManager pm = getPM(); - OpenJPAQuery q = pm.createNativeQuery("",HelperPC2.class); + OpenJPAQuery q = (OpenJPAQuery) pm.createNativeQuery("",HelperPC2.class); //FIXME jthomas //q.setOrdering("stringField ascending"); List helpers = (List) q.getResultList(); @@ -206,8 +205,7 @@ public class TestEagerDistinct sql.clear(); pm = getPM(); - q = pm.createNativeQuery("stringField.startsWith ('eager')", - EagerPC.class); + q = (OpenJPAQuery) pm.createNativeQuery("stringField.startsWith ('eager')", EagerPC.class); //FIXME jthomas //q.setOrdering("stringField ascending"); q.getFetchPlan().setFetchBatchSize(fetchSize); diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/meta/TestEagerOuterToManyJoins.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/meta/TestEagerOuterToManyJoins.java index 48d8346a5..282bd8ab4 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/meta/TestEagerOuterToManyJoins.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/meta/TestEagerOuterToManyJoins.java @@ -117,7 +117,7 @@ public class TestEagerOuterToManyJoins FetchPlan fetch = (FetchPlan) pm.getFetchPlan(); fetch.addField(EagerOuterJoinPC.class, "stringCollection"); fetch.setFetchBatchSize(-1); - OpenJPAQuery q = pm.createNativeQuery("",EagerOuterJoinPC.class); + OpenJPAQuery q = (OpenJPAQuery) pm.createNativeQuery("",EagerOuterJoinPC.class); //FIXME jthomas //q.setOrdering("name ascending"); @@ -199,7 +199,7 @@ public class TestEagerOuterToManyJoins FetchPlan fetch = (FetchPlan) pm.getFetchPlan(); fetch.addField(EagerOuterJoinPC.class, "stringList"); fetch.setFetchBatchSize(-1); - OpenJPAQuery q = pm.createNativeQuery("",EagerOuterJoinPC.class); + OpenJPAQuery q = (OpenJPAQuery) pm.createNativeQuery("",EagerOuterJoinPC.class); //FIXME jthomas //q.setOrdering("name ascending"); Collection results = (Collection) q.getResultList(); @@ -287,7 +287,7 @@ public class TestEagerOuterToManyJoins FetchPlan fetch = (FetchPlan) pm.getFetchPlan(); fetch.addField(EagerOuterJoinPC.class, "oneManyCollection"); fetch.setFetchBatchSize(-1); - OpenJPAQuery q = pm.createNativeQuery("",EagerOuterJoinPC.class); + OpenJPAQuery q = (OpenJPAQuery) pm.createNativeQuery("",EagerOuterJoinPC.class); //FIXME jthomas //q.setOrdering("name ascending"); Collection results = (Collection) q.getResultList(); @@ -369,7 +369,7 @@ public class TestEagerOuterToManyJoins FetchPlan fetch = (FetchPlan) pm.getFetchPlan(); fetch.addField(EagerOuterJoinPC.class, "manyManyCollection"); fetch.setFetchBatchSize(-1); - OpenJPAQuery q = pm.createNativeQuery("",EagerOuterJoinPC.class); + OpenJPAQuery q = (OpenJPAQuery) pm.createNativeQuery("",EagerOuterJoinPC.class); //FIXME jthomas //q.setOrdering("name ascending"); Collection results = (Collection) q.getResultList(); @@ -467,7 +467,7 @@ public class TestEagerOuterToManyJoins FetchPlan fetch = (FetchPlan) pm.getFetchPlan(); fetch.addField(EagerOuterJoinPC.class, "manyManyList"); fetch.setFetchBatchSize(-1); - OpenJPAQuery q = pm.createNativeQuery("",EagerOuterJoinPC.class); + OpenJPAQuery q = (OpenJPAQuery) pm.createNativeQuery("",EagerOuterJoinPC.class); //FIXME jthomas //q.setOrdering("name ascending"); Collection results = (Collection) q.getResultList(); @@ -567,7 +567,7 @@ public class TestEagerOuterToManyJoins fetch.addField(EagerOuterJoinPC.class, "manyManyList"); fetch.setFetchBatchSize(-1); - OpenJPAQuery q = pm.createNativeQuery("",EagerOuterJoinPC.class); + OpenJPAQuery q = (OpenJPAQuery) pm.createNativeQuery("",EagerOuterJoinPC.class); //FIXME jthomas //q.setOrdering("name ascending"); Collection results = (Collection) q.getResultList(); @@ -641,7 +641,7 @@ public class TestEagerOuterToManyJoins FetchPlan fetch = (FetchPlan) pm.getFetchPlan(); fetch.addField(EagerOuterJoinPC.class, "stringList"); fetch.setFetchBatchSize(3); - OpenJPAQuery q = pm.createNativeQuery("",EagerOuterJoinPC.class); + OpenJPAQuery q = (OpenJPAQuery) pm.createNativeQuery("",EagerOuterJoinPC.class); //FIXME jthomas //q.setOrdering("name ascending"); List results = (List) q.getResultList(); @@ -665,7 +665,7 @@ public class TestEagerOuterToManyJoins FetchPlan fetch = (FetchPlan) pm.getFetchPlan(); fetch.addField(EagerOuterJoinPC.class, "stringList"); fetch.setFetchBatchSize(3); - OpenJPAQuery q = pm.createNativeQuery("",EagerOuterJoinPC.class); + OpenJPAQuery q = (OpenJPAQuery) pm.createNativeQuery("",EagerOuterJoinPC.class); //FIXME jthomas //q.setOrdering("name ascending"); //q.setRange(5, 20); @@ -705,7 +705,7 @@ public class TestEagerOuterToManyJoins FetchPlan fetch = (FetchPlan) pm.getFetchPlan(); fetch.addField(EagerOuterJoinPC2.class, "ref"); fetch.addField(EagerOuterJoinPC.class, "stringCollection"); - OpenJPAQuery q = pm.createNativeQuery("",EagerOuterJoinPC2.class); + OpenJPAQuery q = (OpenJPAQuery) pm.createNativeQuery("",EagerOuterJoinPC2.class); //FIXME jthomas //q.setOrdering("name ascending"); Collection results = (Collection) q.getResultList(); @@ -735,7 +735,7 @@ public class TestEagerOuterToManyJoins FetchPlan fetch = (FetchPlan) pm.getFetchPlan(); fetch.addField(EagerOuterJoinPC.class, "manyManyList"); fetch.addField(EagerOuterJoinPC2.class, "helper"); - OpenJPAQuery q = pm.createNativeQuery("",EagerOuterJoinPC.class); + OpenJPAQuery q = (OpenJPAQuery) pm.createNativeQuery("",EagerOuterJoinPC.class); //FIXME jthomas //q.setOrdering("name ascending"); Collection results = (Collection) q.getResultList(); @@ -762,7 +762,7 @@ public class TestEagerOuterToManyJoins FetchPlan fetch = (FetchPlan) pm.getFetchPlan(); fetch.addField(EagerOuterJoinPC.class, "manyManyList"); fetch.addField(EagerOuterJoinPC2.class, "stringCollection"); - OpenJPAQuery q = pm.createNativeQuery("",EagerOuterJoinPC.class); + OpenJPAQuery q = (OpenJPAQuery) pm.createNativeQuery("",EagerOuterJoinPC.class); //FIXME jthomas //q.setOrdering("name ascending"); Collection results = (Collection) q.getResultList(); @@ -795,7 +795,7 @@ public class TestEagerOuterToManyJoins fetch.addField(EagerOuterJoinPC.class, "oneManyCollection"); fetch.addField(EagerOuterJoinPC.class, "helper"); fetch.addField(EagerOuterJoinPC2.class, "helper"); - OpenJPAQuery q = pm.createNativeQuery("",EagerOuterJoinPC.class); + OpenJPAQuery q = (OpenJPAQuery) pm.createNativeQuery("",EagerOuterJoinPC.class); //FIXME jthomas //q.setOrdering("name ascending"); Collection results = (Collection) q.getResultList(); diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/meta/TestMappedByKeyMaps.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/meta/TestMappedByKeyMaps.java index 70a651b9e..fd723e97f 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/meta/TestMappedByKeyMaps.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/meta/TestMappedByKeyMaps.java @@ -232,20 +232,19 @@ public class TestMappedByKeyMaps pm.close(); pm = (OpenJPAEntityManager)currentEntityManager(); - OpenJPAQuery q = pm.createNativeQuery("stringField == 'h2'", - HelperPC.class); + OpenJPAQuery q = (OpenJPAQuery) pm.createNativeQuery("stringField == 'h2'", HelperPC.class); //FIXME jthomas //q.setUnique(true); HelperPC h2 = (HelperPC) q.getSingleResult(); - q = pm.createNativeQuery("helpers.containsKey ('h2')",pc.getClass()); + q = (OpenJPAQuery) pm.createNativeQuery("helpers.containsKey ('h2')",pc.getClass()); //FIXME jthomas //q.setUnique(true); pc = (MappedByMapPC) q.getSingleResult(); assertEquals(3, pc.getHelpers().size()); assertEquals(h2, pc.getHelpers().get("h2")); - q = pm.createNativeQuery("helpers.containsValue (:h2)",pc.getClass()); + q = (OpenJPAQuery) pm.createNativeQuery("helpers.containsValue (:h2)",pc.getClass()); //FIXME jthomas //q.setUnique(true); pc = (MappedByMapPC) q.getSingleResult(); diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/meta/TestMultiTableMappings.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/meta/TestMultiTableMappings.java index af4e05ef1..872c97185 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/meta/TestMultiTableMappings.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/meta/TestMultiTableMappings.java @@ -175,7 +175,7 @@ public class TestMultiTableMappings public void testVerticalQueryModeQueries() { OpenJPAEntityManager pm =(OpenJPAEntityManager)currentEntityManager(); - OpenJPAQuery<MultiA> q = pm.createNativeQuery("",MultiA.class); + OpenJPAQuery<MultiA> q = (OpenJPAQuery<MultiA>) pm.createNativeQuery("",MultiA.class); ((JDBCFetchPlan) q.getFetchPlan()).setSubclassFetchMode(FetchMode.PARALLEL); // we need ordering; otherwise kodo is smart enough to only run first // select until its results are exhausted diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/meta/TestNoClassColumn.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/meta/TestNoClassColumn.java index 2a89f6c0f..74fa79618 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/meta/TestNoClassColumn.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/meta/TestNoClassColumn.java @@ -48,7 +48,7 @@ public class TestNoClassColumn public void testQuery() { OpenJPAEntityManager pm =(OpenJPAEntityManager)currentEntityManager(); - OpenJPAQuery q = pm.createNativeQuery("",NoClassColumn.class); + OpenJPAQuery q = (OpenJPAQuery) pm.createNativeQuery("",NoClassColumn.class); //FIXME jthomas //q.declareParameters("java.lang.String input"); //q.setFilter("test==input"); diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/meta/TestStateImage.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/meta/TestStateImage.java index 648262cf6..4e12ffaea 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/meta/TestStateImage.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/meta/TestStateImage.java @@ -160,7 +160,7 @@ public class TestStateImage // have to load via query or extent where we're selecting the vertical // field in the initial SELECT - OpenJPAQuery q1 = pm1.createNativeQuery("",StateImagePC2.class); + OpenJPAQuery q1 = (OpenJPAQuery) pm1.createNativeQuery("",StateImagePC2.class); //FIXME jthomas //q1.setOrdering("intField ascending"); StateImagePC2 pc1 = @@ -168,7 +168,7 @@ public class TestStateImage iterator().next(); q1.closeAll(); - OpenJPAQuery q2 = pm2.createNativeQuery("",StateImagePC2.class); + OpenJPAQuery q2 = (OpenJPAQuery) pm2.createNativeQuery("",StateImagePC2.class); //FIXME jthomas //q2.setOrdering("intField ascending"); StateImagePC2 pc2 = diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/meta/vertical/TestSubclassJoinRelations.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/meta/vertical/TestSubclassJoinRelations.java index aaf4e3490..98761b00e 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/meta/vertical/TestSubclassJoinRelations.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/meta/vertical/TestSubclassJoinRelations.java @@ -432,7 +432,7 @@ public class TestSubclassJoinRelations public void testProjections() throws Exception { OpenJPAEntityManager pm =(OpenJPAEntityManager)currentEntityManager(); - OpenJPAQuery q = pm.createNativeQuery("",Relations.class); + OpenJPAQuery q = (OpenJPAQuery) pm.createNativeQuery("",Relations.class); //FIXME jthomas /* q.setResult("base, baseSub1, baseSub1Sub2"); diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/query/TestNamedSQLQueries.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/query/TestNamedSQLQueries.java index c0596d135..fbfa179f2 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/query/TestNamedSQLQueries.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/query/TestNamedSQLQueries.java @@ -66,7 +66,7 @@ public class TestNamedSQLQueries public void testNamedQuery() { OpenJPAEntityManager pm =(OpenJPAEntityManager)currentEntityManager(); - OpenJPAQuery q = pm.createNativeQuery("cls",NamedSQL.class); + OpenJPAQuery q = (OpenJPAQuery) pm.createNativeQuery("cls",NamedSQL.class); assertEquals("javax.jdo.query.SQL", ((OpenJPAQuery) q).getLanguage()); Collection results = (Collection) q.getCandidateCollection(); diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/query/TestStringFunctions.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/query/TestStringFunctions.java index 12dd3dc33..f05c7c4a9 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/query/TestStringFunctions.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/query/TestStringFunctions.java @@ -110,7 +110,7 @@ public class TestStringFunctions } private void assertMatch(String filter) { - OpenJPAQuery q = _pm.createNativeQuery(filter,QueryTest1.class); + OpenJPAQuery q = (OpenJPAQuery) _pm.createNativeQuery(filter,QueryTest1.class); Collection res = (Collection) q.getCandidateCollection(); assertEquals(1, res.size()); assertEquals(_match, res.iterator().next()); diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/simple/TestJava8TimeTypes.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/simple/TestJava8TimeTypes.java index db1a7447c..e7b7c6af0 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/simple/TestJava8TimeTypes.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/simple/TestJava8TimeTypes.java @@ -261,7 +261,6 @@ public class TestJava8TimeTypes extends SingleEMFTestCase { final TypedQuery<Java8TimeTypes> qry = em.createQuery("select j from Java8TimeTypes AS j where j.localTimeField < LOCAL TIME", Java8TimeTypes.class); final List<Java8TimeTypes> times = qry.getResultList(); -System.err.println(times); assertNotNull(times); assertFalse(times.isEmpty()); em.close(); diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/TestPersistenceProviderFilteringTestCase.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/TestPersistenceProviderFilteringTestCase.java index 78676d216..6a61c0f08 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/TestPersistenceProviderFilteringTestCase.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/TestPersistenceProviderFilteringTestCase.java @@ -24,6 +24,7 @@ import org.apache.openjpa.persistence.entity.EntityB; import org.apache.openjpa.persistence.entity.EntityC; import jakarta.persistence.EntityManagerFactory; +import jakarta.persistence.PersistenceConfiguration; import jakarta.persistence.spi.PersistenceProvider; import jakarta.persistence.spi.PersistenceUnitInfo; import jakarta.persistence.spi.ProviderUtil; @@ -93,5 +94,10 @@ public class TestPersistenceProviderFilteringTestCase extends SQLListenerTestCas @Override public ProviderUtil getProviderUtil() { return null; } + + @Override + public EntityManagerFactory createEntityManagerFactory(PersistenceConfiguration configuration) { + return null; + } } } diff --git a/openjpa-persistence-locking/pom.xml b/openjpa-persistence-locking/pom.xml index 240c57a37..8a0a3fec7 100644 --- a/openjpa-persistence-locking/pom.xml +++ b/openjpa-persistence-locking/pom.xml @@ -118,6 +118,7 @@ <goals> <goal>unpack</goal> </goals> + <?m2e ignore?> <configuration> <artifactItems> <artifactItem> diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java index 0070d32b1..45a4f4a9a 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerFactoryImpl.java @@ -24,13 +24,20 @@ import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.Set; +import java.util.function.Consumer; +import java.util.function.Function; import jakarta.persistence.Cache; import jakarta.persistence.EntityGraph; +import jakarta.persistence.EntityManager; import jakarta.persistence.EntityManagerFactory; +import jakarta.persistence.PersistenceUnitTransactionType; import jakarta.persistence.PersistenceUnitUtil; import jakarta.persistence.Query; +import jakarta.persistence.SchemaManager; import jakarta.persistence.SynchronizationType; +import jakarta.persistence.TypedQueryReference; +import jakarta.persistence.metamodel.Attribute; import jakarta.persistence.spi.LoadState; import org.apache.openjpa.conf.OpenJPAConfiguration; @@ -67,8 +74,7 @@ public class EntityManagerFactoryImpl private static final long serialVersionUID = 1L; - private static final Localizer _loc = Localizer.forPackage - (EntityManagerFactoryImpl.class); + private static final Localizer _loc = Localizer.forPackage(EntityManagerFactoryImpl.class); private DelegatingBrokerFactory _factory = null; private transient Constructor<FetchPlan> _plan = null; @@ -427,6 +433,11 @@ public class EntityManagerFactoryImpl } return _metaModel; } + + @Override + public String getName() { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } @Override public PersistenceUnitUtil getPersistenceUnitUtil() { @@ -454,7 +465,12 @@ public class EntityManagerFactoryImpl public <T> void addNamedEntityGraph(String graphName, EntityGraph<T> entityGraph) { throw new UnsupportedOperationException("JPA 2.1"); } - + + @Override + public <E> Map<String, EntityGraph<? extends E>> getNamedEntityGraphs(Class<E> entityType) { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + /** * Get the identifier for the specified entity. If not managed by any * of the em's in this PU or not persistence capable, return null. @@ -466,7 +482,7 @@ public class EntityManagerFactoryImpl @Override public boolean isLoaded(Object entity) { - return isLoaded(entity, null); + return isLoaded(entity, (String) null); } @Override @@ -477,7 +493,67 @@ public class EntityManagerFactoryImpl return (OpenJPAPersistenceUtil.isManagedBy(this, entity) && (OpenJPAPersistenceUtil.isLoaded(entity, attribute) == LoadState.LOADED)); } - + + @Override + public <E> boolean isLoaded(E entity, Attribute<? super E, ?> attribute) { + return isLoaded(entity, attribute.getName()); + } + + @Override + public SchemaManager getSchemaManager() { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public <R> R callInTransaction(Function<EntityManager, R> work) { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public void runInTransaction(Consumer<EntityManager> work) { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public <T> Class<? extends T> getClass(T entity) { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public <R> Map<String, TypedQueryReference<R>> getNamedQueries(Class<R> resultType) { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public PersistenceUnitTransactionType getTransactionType() { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Object getVersion(Object entity) { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public boolean isInstance(Object entity, Class<?> entityClass) { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public void load(Object entity) { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public void load(Object entity, String attributeName) { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public <E> void load(E entity, Attribute<? super E, ?> attribute) { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + private void validateCfNameProps(OpenJPAConfiguration conf, String cfName, String cf2Name) { if (StringUtil.isNotEmpty(cfName) || StringUtil.isNotEmpty(cf2Name)) { if (conf.getDataCache() != "false" && conf.getDataCache() != null) { diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java index 9ea1d7a51..f432ab1a6 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java @@ -37,22 +37,30 @@ import java.util.EnumSet; import java.util.HashMap; import java.util.IdentityHashMap; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Set; import jakarta.persistence.CacheRetrieveMode; import jakarta.persistence.CacheStoreMode; +import jakarta.persistence.ConnectionConsumer; +import jakarta.persistence.ConnectionFunction; import jakarta.persistence.EntityGraph; import jakarta.persistence.EntityManager; +import jakarta.persistence.FindOption; import jakarta.persistence.FlushModeType; import jakarta.persistence.LockModeType; +import jakarta.persistence.LockOption; import jakarta.persistence.PessimisticLockScope; import jakarta.persistence.Query; +import jakarta.persistence.RefreshOption; import jakarta.persistence.StoredProcedureQuery; import jakarta.persistence.Tuple; import jakarta.persistence.TypedQuery; +import jakarta.persistence.TypedQueryReference; import jakarta.persistence.criteria.CriteriaDelete; import jakarta.persistence.criteria.CriteriaQuery; +import jakarta.persistence.criteria.CriteriaSelect; import jakarta.persistence.criteria.CriteriaUpdate; import jakarta.persistence.criteria.ParameterExpression; import jakarta.persistence.metamodel.Metamodel; @@ -2093,15 +2101,13 @@ public class EntityManagerImpl CacheRetrieveMode rMode = JPAProperties.getEnumValue(CacheRetrieveMode.class, JPAProperties.CACHE_RETRIEVE_MODE, properties); if (rMode != null) { - fetch.setCacheRetrieveMode(JPAProperties.convertToKernelValue(DataCacheRetrieveMode.class, - JPAProperties.CACHE_RETRIEVE_MODE, rMode)); + fetch.setCacheRetrieveMode(DataCacheRetrieveMode.valueOf(rMode.toString().trim().toUpperCase(Locale.ENGLISH))); properties.remove(JPAProperties.CACHE_RETRIEVE_MODE); } CacheStoreMode sMode = JPAProperties.getEnumValue(CacheStoreMode.class, JPAProperties.CACHE_STORE_MODE, properties); if (sMode != null) { - fetch.setCacheStoreMode(JPAProperties.convertToKernelValue(DataCacheStoreMode.class, - JPAProperties.CACHE_STORE_MODE, sMode)); + fetch.setCacheStoreMode(DataCacheStoreMode.valueOf(sMode.toString().trim().toUpperCase(Locale.ENGLISH))); properties.remove(JPAProperties.CACHE_STORE_MODE); } } @@ -2246,4 +2252,90 @@ public class EntityManagerImpl } return meta; } + + @Override + public <T> T find(Class<T> entityClass, Object primaryKey, FindOption... options) { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public <T> T find(EntityGraph<T> entityGraph, Object primaryKey, FindOption... options) { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public <T> T getReference(T entity) { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public void lock(Object entity, LockModeType lockMode, LockOption... options) { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public void refresh(Object entity, RefreshOption... options) { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public CacheRetrieveMode getCacheRetrieveMode() { + return getFetchPlan().getCacheRetrieveMode() == DataCacheRetrieveMode.USE ? CacheRetrieveMode.USE : CacheRetrieveMode.BYPASS; + } + + @Override + public void setCacheRetrieveMode(CacheRetrieveMode cacheRetrieveMode) { + getFetchPlan().setCacheRetrieveMode(cacheRetrieveMode == CacheRetrieveMode.USE + ? DataCacheRetrieveMode.USE : DataCacheRetrieveMode.BYPASS); + } + + @Override + public void setCacheStoreMode(CacheStoreMode cacheStoreMode) { + DataCacheStoreMode storeMode = switch (cacheStoreMode) { + case USE: yield DataCacheStoreMode.USE; + case REFRESH: yield DataCacheStoreMode.REFRESH; + default: yield DataCacheStoreMode.BYPASS; + }; + getFetchPlan().setCacheStoreMode(storeMode); + } + + @Override + public CacheStoreMode getCacheStoreMode() { + return switch (getFetchPlan().getCacheStoreMode()) { + case USE: yield CacheStoreMode.USE; + case REFRESH: yield CacheStoreMode.REFRESH; + default: yield CacheStoreMode.BYPASS; + }; + } + + @Override + public <T> TypedQuery<T> createQuery(CriteriaSelect<T> selectQuery) { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public <T> TypedQuery<T> createQuery(TypedQueryReference<T> reference) { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public <C> void runWithConnection(ConnectionConsumer<C> action) { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public <C, T> T callWithConnection(ConnectionFunction<C, T> function) { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public void setTimeout(Integer timeout) { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Integer getTimeout() { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + } diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/JPAProperties.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/JPAProperties.java index d8dd41a63..fa57f1049 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/JPAProperties.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/JPAProperties.java @@ -130,9 +130,9 @@ public class JPAProperties { if (JPAProperties.isValidKey(key)) { // works because enum values are identical String if (value instanceof CacheRetrieveMode || (value instanceof String && CACHE_RETRIEVE_MODE.equals(key))) { - return (T)DataCacheRetrieveMode.valueOf(value.toString().trim().toUpperCase(Locale.ENGLISH)); + return (T) value; } else if (value instanceof CacheStoreMode || (value instanceof String && CACHE_STORE_MODE.equals(key))) { - return (T)DataCacheStoreMode.valueOf(value.toString().trim().toUpperCase(Locale.ENGLISH)); + return (T) value; } // If the value doesn't match the result type, attempt to convert diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/OpenJPAPersistenceUtil.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/OpenJPAPersistenceUtil.java index 8bd47d0aa..7e04b506a 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/OpenJPAPersistenceUtil.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/OpenJPAPersistenceUtil.java @@ -57,8 +57,7 @@ public class OpenJPAPersistenceUtil { public static Object getIdentifier(OpenJPAEntityManagerFactory emf, Object entity) { - if (entity instanceof PersistenceCapable) { - PersistenceCapable pc = (PersistenceCapable)entity; + if (entity instanceof PersistenceCapable pc) { // Per contract, if not managed by the owning emf, return null. if (emf != null) { if (!isManagedBy(emf, pc)) { diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java index e3d59a27c..09e30477d 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java @@ -41,6 +41,8 @@ import org.apache.openjpa.persistence.validation.ValidationUtils; import org.apache.openjpa.util.ClassResolver; import jakarta.persistence.EntityManager; +import jakarta.persistence.EntityManagerFactory; +import jakarta.persistence.PersistenceConfiguration; import jakarta.persistence.spi.ClassTransformer; import jakarta.persistence.spi.LoadState; import jakarta.persistence.spi.PersistenceProvider; @@ -484,4 +486,9 @@ public class PersistenceProviderImpl return OpenJPAPersistenceUtil.isLoaded(obj, attr); } + + @Override + public EntityManagerFactory createEntityManagerFactory(PersistenceConfiguration configuration) { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } } diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceUnitInfoImpl.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceUnitInfoImpl.java index dca4b9a3d..4acc8e4b4 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceUnitInfoImpl.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceUnitInfoImpl.java @@ -605,4 +605,15 @@ public class PersistenceUnitInfoImpl public void setSharedCacheMode(SharedCacheMode mode) { _sharedCacheMode = mode; } + + @Override + public String getScopeAnnotationName() { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public List<String> getQualifierAnnotationNames() { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + } diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/QueryImpl.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/QueryImpl.java index e140ecbc1..d07b02aee 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/QueryImpl.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/QueryImpl.java @@ -28,6 +28,8 @@ import java.util.Map; import java.util.Set; import java.util.concurrent.locks.ReentrantLock; +import jakarta.persistence.CacheRetrieveMode; +import jakarta.persistence.CacheStoreMode; import jakarta.persistence.FlushModeType; import jakarta.persistence.LockModeType; import jakarta.persistence.NoResultException; @@ -688,4 +690,40 @@ public class QueryImpl<X> extends AbstractQuery<X> implements Serializable { String result = _query.getQueryString(); return result != null ? result : _id; } + + @Override + public X getSingleResultOrNull() { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public TypedQuery<X> setCacheRetrieveMode(CacheRetrieveMode cacheRetrieveMode) { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public CacheRetrieveMode getCacheRetrieveMode() { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public CacheStoreMode getCacheStoreMode() { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public TypedQuery<X> setCacheStoreMode(CacheStoreMode cacheStoreMode) { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Integer getTimeout() { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public TypedQuery<X> setTimeout(Integer timeout) { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + } diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/StoredProcedureQueryImpl.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/StoredProcedureQueryImpl.java index 91a7e6623..d672b4d75 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/StoredProcedureQueryImpl.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/StoredProcedureQueryImpl.java @@ -24,6 +24,8 @@ import java.util.List; import java.util.Map; import java.util.Set; +import jakarta.persistence.CacheRetrieveMode; +import jakarta.persistence.CacheStoreMode; import jakarta.persistence.FlushModeType; import jakarta.persistence.LockModeType; import jakarta.persistence.NoResultException; @@ -419,4 +421,40 @@ public class StoredProcedureQueryImpl implements StoredProcedureQuery { public String toString() { return _name; } + + @Override + public CacheRetrieveMode getCacheRetrieveMode() { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public CacheStoreMode getCacheStoreMode() { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public StoredProcedureQuery setCacheRetrieveMode(CacheRetrieveMode cacheRetrieveMode) { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public StoredProcedureQuery setCacheStoreMode(CacheStoreMode cacheStoreMode) { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public StoredProcedureQuery setTimeout(Integer timeout) { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Integer getTimeout() { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Object getSingleResultOrNull() { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + } diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CompareByExample.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CompareByExample.java index 49c79f9c8..836015c76 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CompareByExample.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CompareByExample.java @@ -125,4 +125,29 @@ class CompareByExample<T> extends PredicateImpl { static <T> BooleanOperator extractOperator(ComparisonStyle style) { return style == null ? BooleanOperator.AND : style.isDisjunction() ? BooleanOperator.OR : BooleanOperator.AND; } + + @Override + public Predicate equalTo(Expression<?> value) { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Predicate equalTo(Object value) { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Predicate notEqualTo(Expression<?> value) { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Predicate notEqualTo(Object value) { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public <X> Expression<X> cast(Class<X> type) { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } } diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaBuilderImpl.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaBuilderImpl.java index 68d2e89c4..680a884b9 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaBuilderImpl.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaBuilderImpl.java @@ -27,8 +27,10 @@ import java.sql.Timestamp; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; +import java.time.temporal.Temporal; import java.util.Collection; import java.util.Collections; +import java.util.List; import java.util.Map; import java.util.Set; @@ -36,12 +38,14 @@ import jakarta.persistence.Tuple; import jakarta.persistence.criteria.CollectionJoin; import jakarta.persistence.criteria.CompoundSelection; import jakarta.persistence.criteria.CriteriaDelete; +import jakarta.persistence.criteria.CriteriaSelect; import jakarta.persistence.criteria.CriteriaUpdate; import jakarta.persistence.criteria.Expression; import jakarta.persistence.criteria.From; import jakarta.persistence.criteria.Join; import jakarta.persistence.criteria.ListJoin; import jakarta.persistence.criteria.MapJoin; +import jakarta.persistence.criteria.Nulls; import jakarta.persistence.criteria.Order; import jakarta.persistence.criteria.ParameterExpression; import jakarta.persistence.criteria.Path; @@ -51,6 +55,7 @@ import jakarta.persistence.criteria.Root; import jakarta.persistence.criteria.Selection; import jakarta.persistence.criteria.SetJoin; import jakarta.persistence.criteria.Subquery; +import jakarta.persistence.criteria.TemporalField; import jakarta.persistence.metamodel.Attribute; import jakarta.persistence.metamodel.ManagedType; import jakarta.persistence.metamodel.Metamodel; @@ -1043,4 +1048,136 @@ public class CriteriaBuilderImpl implements OpenJPACriteriaBuilder, ExpressionPa return new Expressions.CurrentLocalTime(); } + @Override + public CompoundSelection<Tuple> tuple(List<Selection<?>> selections) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public CompoundSelection<Object[]> array(List<Selection<?>> selections) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Order asc(Expression<?> expression, Nulls nullPrecedence) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Order desc(Expression<?> expression, Nulls nullPrecedence) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Predicate and(List<Predicate> restrictions) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Predicate or(List<Predicate> restrictions) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Expression<String> concat(List<Expression<String>> expressions) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Expression<String> left(Expression<String> x, int len) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Expression<String> right(Expression<String> x, int len) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Expression<String> left(Expression<String> x, Expression<Integer> len) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Expression<String> right(Expression<String> x, Expression<Integer> len) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Expression<String> replace(Expression<String> x, Expression<String> substring, Expression<String> replacement) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Expression<String> replace(Expression<String> x, String substring, Expression<String> replacement) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Expression<String> replace(Expression<String> x, Expression<String> substring, String replacement) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Expression<String> replace(Expression<String> x, String substring, String replacement) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public <N, T extends Temporal> Expression<N> extract(TemporalField<N, T> field, Expression<T> temporal) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public <T> CriteriaSelect<T> union(CriteriaSelect<? extends T> left, CriteriaSelect<? extends T> right) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public <T> CriteriaSelect<T> unionAll(CriteriaSelect<? extends T> left, CriteriaSelect<? extends T> right) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public <T> CriteriaSelect<T> intersect(CriteriaSelect<? super T> left, CriteriaSelect<? super T> right) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public <T> CriteriaSelect<T> intersectAll(CriteriaSelect<? super T> left, CriteriaSelect<? super T> right) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public <T> CriteriaSelect<T> except(CriteriaSelect<T> left, CriteriaSelect<?> right) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public <T> CriteriaSelect<T> exceptAll(CriteriaSelect<T> left, CriteriaSelect<?> right) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + } diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaQueryImpl.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaQueryImpl.java index 977796ebb..468158e7d 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaQueryImpl.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaQueryImpl.java @@ -795,4 +795,20 @@ class CriteriaQueryImpl<T> implements OpenJPACriteriaQuery<T>, AliasContext { return true; return false; } + + @Override + public CriteriaQuery<T> where(List<Predicate> restrictions) { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public CriteriaQuery<T> having(List<Predicate> restrictions) { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public <U> Subquery<U> subquery(EntityType<U> type) { + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + } diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/ExpressionImpl.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/ExpressionImpl.java index d13c7dd22..8aa9f8040 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/ExpressionImpl.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/ExpressionImpl.java @@ -112,6 +112,36 @@ public Predicate in(Object... values) { public Predicate isNull() { return new Expressions.IsNull(this); } + + @Override + public Predicate equalTo(Expression<?> value) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Predicate equalTo(Object value) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public <X> Expression<X> cast(Class<X> type) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Predicate notEqualTo(Expression<?> value) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Predicate notEqualTo(Object value) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } // ------------------------------------------------------------------------------------ // Contract for bridge pattern to convert to an equivalent kernel representation. diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/FromImpl.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/FromImpl.java index 61c13aa57..f4fc38eef 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/FromImpl.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/FromImpl.java @@ -22,15 +22,18 @@ package org.apache.openjpa.persistence.criteria; import java.util.HashSet; import jakarta.persistence.criteria.CollectionJoin; +import jakarta.persistence.criteria.Expression; import jakarta.persistence.criteria.Fetch; import jakarta.persistence.criteria.From; import jakarta.persistence.criteria.Join; import jakarta.persistence.criteria.JoinType; import jakarta.persistence.criteria.ListJoin; import jakarta.persistence.criteria.MapJoin; +import jakarta.persistence.criteria.Predicate; import jakarta.persistence.criteria.SetJoin; import jakarta.persistence.metamodel.Attribute; import jakarta.persistence.metamodel.CollectionAttribute; +import jakarta.persistence.metamodel.EntityType; import jakarta.persistence.metamodel.ListAttribute; import jakarta.persistence.metamodel.ManagedType; import jakarta.persistence.metamodel.MapAttribute; @@ -333,4 +336,59 @@ class FromImpl<Z,X> extends PathImpl<Z,X> implements From<Z,X> { public From<Z,X> getCorrelationParent() { return (From<Z,X>)getCorrelatedPath(); } + + @Override + public Predicate equalTo(Expression<?> value) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Predicate equalTo(Object value) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Predicate notEqualTo(Expression<?> value) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Predicate notEqualTo(Object value) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public <X> Expression<X> cast(Class<X> type) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public <Y> Join<X, Y> join(Class<Y> entityClass) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public <Y> Join<X, Y> join(Class<Y> entityClass, JoinType joinType) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public <Y> Join<X, Y> join(EntityType<Y> entity) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public <Y> Join<X, Y> join(EntityType<Y> entity, JoinType joinType) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + } diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/Joins.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/Joins.java index 340f41f7c..f6e0398f4 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/Joins.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/Joins.java @@ -754,6 +754,36 @@ abstract class Joins { buffer.append(var != null ? var.getName() : map.asValue(q)).append(")"); return buffer; } + + @Override + public Predicate equalTo(Expression<?> value) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Predicate equalTo(Object value) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Predicate notEqualTo(Expression<?> value) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Predicate notEqualTo(Object value) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public <X> Expression<X> cast(Class<X> type) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } } /** diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/OrderImpl.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/OrderImpl.java index ebcb8d403..f0ce9588d 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/OrderImpl.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/OrderImpl.java @@ -19,6 +19,7 @@ package org.apache.openjpa.persistence.criteria; import jakarta.persistence.criteria.Expression; +import jakarta.persistence.criteria.Nulls; import jakarta.persistence.criteria.Order; /** @@ -79,4 +80,10 @@ class OrderImpl implements Order, CriteriaExpression { public StringBuilder asVariable(AliasContext q) { throw new IllegalStateException(this + " can not be rendered as variable"); } + + @Override + public Nulls getNullPrecedence() { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } } diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/ParameterExpressionImpl.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/ParameterExpressionImpl.java index 528079f8e..5a0257789 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/ParameterExpressionImpl.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/ParameterExpressionImpl.java @@ -20,7 +20,9 @@ package org.apache.openjpa.persistence.criteria; import java.util.Collection; +import jakarta.persistence.criteria.Expression; import jakarta.persistence.criteria.ParameterExpression; +import jakarta.persistence.criteria.Predicate; import org.apache.openjpa.kernel.exps.ExpressionFactory; import org.apache.openjpa.kernel.exps.Value; @@ -167,4 +169,34 @@ class ParameterExpressionImpl<T> extends ExpressionImpl<T> return value != null ? value.equals(that.value) : that.value == null; } + @Override + public Predicate equalTo(Expression<?> value) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Predicate equalTo(Object value) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Predicate notEqualTo(Expression<?> value) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Predicate notEqualTo(Object value) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public <X> Expression<X> cast(Class<X> type) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + } diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/PathImpl.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/PathImpl.java index d2c93b2ee..fa8d88a58 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/PathImpl.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/PathImpl.java @@ -23,6 +23,7 @@ import jakarta.persistence.criteria.Expression; import jakarta.persistence.criteria.Join; import jakarta.persistence.criteria.JoinType; import jakarta.persistence.criteria.Path; +import jakarta.persistence.criteria.Predicate; import jakarta.persistence.metamodel.Bindable; import jakarta.persistence.metamodel.ManagedType; import jakarta.persistence.metamodel.MapAttribute; @@ -255,7 +256,7 @@ class PathImpl<Z,X> extends ExpressionImpl<X> implements Path<X> { * Gets a new path that represents the given multi-valued attribute from this path. */ @Override - public <E, C extends java.util.Collection<E>> Expression<C> get(PluralAttribute<X, C, E> coll) { + public <E, C extends java.util.Collection<E>> Expression<C> get(PluralAttribute<? super X, C, E> coll) { if (getType() != coll.getDeclaringType()) { coll = (PluralAttribute)((ManagedType)getType()).getAttribute(coll.getName()); } @@ -266,7 +267,7 @@ class PathImpl<Z,X> extends ExpressionImpl<X> implements Path<X> { * Gets a new path that represents the given map-valued attribute from this path. */ @Override - public <K, V, M extends java.util.Map<K, V>> Expression<M> get(MapAttribute<X, K, V> map) { + public <K, V, M extends java.util.Map<K, V>> Expression<M> get(MapAttribute<? super X, K, V> map) { if (getType() != map.getDeclaringType()) { map = (MapAttribute)((ManagedType)getType()).getAttribute(map.getName()); } @@ -326,4 +327,34 @@ class PathImpl<Z,X> extends ExpressionImpl<X> implements Path<X> { Value var = q.getRegisteredVariable(this); return asValue(q).append(" ").append(var == null ? "?" : var.getName()); } + + @Override + public Predicate equalTo(Expression<?> value) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Predicate equalTo(Object value) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Predicate notEqualTo(Expression<?> value) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Predicate notEqualTo(Object value) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public <X> Expression<X> cast(Class<X> type) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } } diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/PredicateImpl.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/PredicateImpl.java index 6acb771a1..434508f2f 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/PredicateImpl.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/PredicateImpl.java @@ -202,6 +202,36 @@ abstract class PredicateImpl extends ExpressionImpl<Boolean> implements Predicat if (isNegated()) buffer.insert(0, "NOT "); return buffer; } + + @Override + public <X> Expression<X> cast(Class<X> type) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Predicate equalTo(Object value) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Predicate equalTo(Expression<?> value) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Predicate notEqualTo(Object value) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Predicate notEqualTo(Expression<?> value) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } /** * Concrete AND predicate. diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/SubqueryImpl.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/SubqueryImpl.java index 663e9f8e7..f628c8726 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/SubqueryImpl.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/SubqueryImpl.java @@ -32,6 +32,7 @@ import jakarta.persistence.criteria.Expression; import jakarta.persistence.criteria.Join; import jakarta.persistence.criteria.ListJoin; import jakarta.persistence.criteria.MapJoin; +import jakarta.persistence.criteria.ParameterExpression; import jakarta.persistence.criteria.Predicate; import jakarta.persistence.criteria.Root; import jakarta.persistence.criteria.SetJoin; @@ -404,4 +405,59 @@ class SubqueryImpl<T> extends ExpressionImpl<T> implements Subquery<T> { public StringBuilder asVariable(AliasContext q) { return asValue(q); } + + @Override + public <U> Subquery<U> subquery(EntityType<U> type) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Set<ParameterExpression<?>> getParameters() { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Predicate equalTo(Expression<?> value) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Predicate equalTo(Object value) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Predicate notEqualTo(Expression<?> value) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Predicate notEqualTo(Object value) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public <X> Expression<X> cast(Class<X> type) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Subquery<T> where(List<Predicate> restrictions) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + + @Override + public Subquery<T> having(List<Predicate> restrictions) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } + } diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/MetamodelImpl.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/MetamodelImpl.java index cb7ca63a5..b29b9b70b 100644 --- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/MetamodelImpl.java +++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/meta/MetamodelImpl.java @@ -454,4 +454,10 @@ public class MetamodelImpl implements Metamodel, Resolver { public QueryContext getQueryContext() { throw new UnsupportedOperationException(); } + + @Override + public EntityType<?> entity(String entityName) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Not yet implemented (JPA 3.2)"); + } } diff --git a/openjpa-xmlstore/pom.xml b/openjpa-xmlstore/pom.xml index 50673c31e..abef44bd4 100644 --- a/openjpa-xmlstore/pom.xml +++ b/openjpa-xmlstore/pom.xml @@ -69,6 +69,7 @@ <goals> <goal>unpack</goal> </goals> + <?m2e ignore?> <configuration> <artifactItems> <artifactItem> diff --git a/pom.xml b/pom.xml index b4fec496f..fd4c807be 100644 --- a/pom.xml +++ b/pom.xml @@ -101,7 +101,7 @@ <pool2.version>2.12.1</pool2.version> <jakarta.annotation-api.version>2.1.1</jakarta.annotation-api.version> - <jakarta.persistence-api.version>3.1.0</jakarta.persistence-api.version> + <jakarta.persistence-api.version>3.2.0</jakarta.persistence-api.version> <jakarta.transaction-api.version>2.0.1</jakarta.transaction-api.version> <jakarta.validation-api.version>3.0.2</jakarta.validation-api.version> <jakarta.jms-api.version>3.1.0</jakarta.jms-api.version>