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>

Reply via email to