This is an automated email from the ASF dual-hosted git repository.

cristof pushed a commit to branch OPENJPA-2940
in repository https://gitbox.apache.org/repos/asf/openjpa.git

commit bda14fe5420818ad1a27026998d1a268a035b5c0
Author: Paulo Cristovão de Araújo Silva Filho <[email protected]>
AuthorDate: Wed May 13 07:49:47 2026 -0300

    [OPENJPA-2940] Minor fixes so CriteriaTests work on pg
---
 .../openjpa/persistence/criteria/AbstractCriteriaTestCase.java    | 2 +-
 .../org/apache/openjpa/persistence/criteria/CriteriaTest.java     | 7 +++++--
 .../org/apache/openjpa/persistence/criteria/TestJPQLSubquery.java | 5 +++--
 .../org/apache/openjpa/persistence/criteria/TestSubqueries.java   | 5 +++--
 .../openjpa/persistence/criteria/results/TestMultiselect.java     | 8 ++------
 5 files changed, 14 insertions(+), 13 deletions(-)

diff --git 
a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/AbstractCriteriaTestCase.java
 
b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/AbstractCriteriaTestCase.java
index 8649db281..8db426de4 100644
--- 
a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/AbstractCriteriaTestCase.java
+++ 
b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/AbstractCriteriaTestCase.java
@@ -84,7 +84,7 @@ public abstract class AbstractCriteriaTestCase extends 
TestCase {
      */
     protected OpenJPAEntityManagerFactorySPI createNamedEMF(Class<?>... types) 
{
         Map<Object, Object> map = new HashMap<>();
-        map.put("openjpa.jdbc.SynchronizeMappings", 
"buildSchema(ForeignKeys=true," + "SchemaAction='add')");
+        map.put("openjpa.jdbc.SynchronizeMappings", 
"buildSchema(ForeignKeys=true," + "SchemaAction='drop,add')");
         map.put("openjpa.jdbc.QuerySQLCache", "false");
         map.put("openjpa.DynamicEnhancementAgent", "false");
         map.put("openjpa.RuntimeUnenhancedClasses", "unsupported");
diff --git 
a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/CriteriaTest.java
 
b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/CriteriaTest.java
index a4f52caae..4bd604bdf 100644
--- 
a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/CriteriaTest.java
+++ 
b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/CriteriaTest.java
@@ -66,16 +66,19 @@ public abstract class CriteriaTest extends 
AbstractCriteriaTestCase {
     @Override
     public void tearDown() throws Exception {
         if (em != null && em.isOpen()) {
+               if (em.getTransaction().isActive()) {
+                       em.getTransaction().rollback();
+               }
             em.close();
-            em = null;
         }
         cb = null;
         auditor.clear();
         auditor = null;
+        em = null;
         if (emf != null && emf.isOpen()) {
             emf.close();
-            emf = null;
         }
+        emf = null;
         super.tearDown();
     }
 
diff --git 
a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestJPQLSubquery.java
 
b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestJPQLSubquery.java
index 3eade3e85..d349d02aa 100644
--- 
a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestJPQLSubquery.java
+++ 
b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestJPQLSubquery.java
@@ -35,6 +35,7 @@ import jakarta.persistence.criteria.SetJoin;
 import jakarta.persistence.criteria.Subquery;
 
 import org.apache.openjpa.jdbc.sql.DerbyDictionary;
+import org.apache.openjpa.jdbc.sql.PostgresDictionary;
 
 /**
  * Tests type-strict version of Criteria API.
@@ -1156,7 +1157,7 @@ public class TestJPQLSubquery extends CriteriaTest {
             + " where o.customer.id = o2.customer.id)";
 
         String expectedSQL = "SELECT t0.id FROM CR_ODR t0 WHERE (t0.delivered 
= ("
-            + "SELECT  CASE  WHEN t1.quantity > ? THEN 1 WHEN t1.quantity = ? 
THEN 0 ELSE 0 END  "
+            + "SELECT  CASE  WHEN t1.quantity > ? THEN true WHEN t1.quantity = 
? THEN false ELSE false END  "
             + "FROM CR_ODR t1 WHERE (t0.CUSTOMER_ID = t1.CUSTOMER_ID)))";
         executeAndCompareSQL(jpql, expectedSQL);
 
@@ -1291,7 +1292,7 @@ public class TestJPQLSubquery extends CriteriaTest {
             + " where o.quantity > 10)";
         String useCast = getDictionary() instanceof DerbyDictionary
            ? "(CAST(t1.name AS VARCHAR(1000)) || CAST(? AS VARCHAR(1000))) "
-           : "CONCAT(t1.name,?) ";
+           : ((getDictionary() instanceof PostgresDictionary) ? "(t1.name||?) 
" :  "CONCAT(t1.name,?) ");
         String expectedSQL = "SELECT t2.id FROM CR_ODR t2 "
             + "INNER JOIN CR_CUST t3 ON t2.CUSTOMER_ID = t3.id WHERE (t3.name 
IN ("
             + "SELECT " + useCast
diff --git 
a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestSubqueries.java
 
b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestSubqueries.java
index 5e3a61b77..1602aacc7 100644
--- 
a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestSubqueries.java
+++ 
b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestSubqueries.java
@@ -687,8 +687,9 @@ public class TestSubqueries extends CriteriaTest {
         em.createQuery("delete from Customer c where c.name = 
'Capricorn'").executeUpdate();
 
         em.flush();
-        if (!txActive) {
-            em.getTransaction().commit();
+        em.getTransaction().commit();
+        if (txActive) {
+            em.getTransaction().begin();
         }
     }
 
diff --git 
a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/results/TestMultiselect.java
 
b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/results/TestMultiselect.java
index 04485e702..79e052ccc 100644
--- 
a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/results/TestMultiselect.java
+++ 
b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/results/TestMultiselect.java
@@ -40,16 +40,12 @@ import org.apache.openjpa.persistence.criteria.Person_;
  */
 
 public class TestMultiselect extends CriteriaTest {
-    private static boolean initialized = false;
 
     @Override
     public void setUp() throws Exception {
         super.setUp();
-        if (!initialized) {
-            clearData();
-            createData();
-            initialized = true;
-        }
+        clearData();
+        createData();
     }
 
     void clearData() {

Reply via email to