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

ahuber pushed a commit to branch maintenance-branch
in repository https://gitbox.apache.org/repos/asf/causeway.git

commit 4120c3d13943a875bee26001aae828be75c349de
Author: andi-huber <[email protected]>
AuthorDate: Tue Jan 13 18:42:15 2026 +0100

    CAUSEWAY-3951: fixes unresolvable type cast (backport from main)
---
 .../jpa/integration/entity/JpaEntityFacet.java     | 24 ++++++++++++----------
 1 file changed, 13 insertions(+), 11 deletions(-)

diff --git 
a/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/entity/JpaEntityFacet.java
 
b/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/entity/JpaEntityFacet.java
index 51494bb75d1..18bae3a1e65 100644
--- 
a/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/entity/JpaEntityFacet.java
+++ 
b/persistence/jpa/integration/src/main/java/org/apache/causeway/persistence/jpa/integration/entity/JpaEntityFacet.java
@@ -24,6 +24,7 @@
 import javax.inject.Inject;
 import javax.persistence.EntityManager;
 import javax.persistence.PersistenceUnitUtil;
+import javax.persistence.TypedQuery;
 
 import org.springframework.data.jpa.repository.JpaContext;
 import org.springframework.lang.Nullable;
@@ -131,17 +132,8 @@ public Can<ManagedObject> fetchByQuery(final Query<?> 
query) {
 
             // guard against misuse
             _Assert.assertTypeIsInstanceOf(queryEntityType, entityClass);
-
-            val entityManager = getEntityManager();
-
-            val cb = entityManager.getCriteriaBuilder();
-            val cr = cb.createQuery(entityClass);
-
-            cr.select(_Casts.uncheckedCast(cr.from(entityClass)));
-
-            val typedQuery = entityManager
-                    .createQuery(cr);
-
+            
+            val typedQuery = selectFrom(entityClass);
             if (range.hasOffset()) {
                 typedQuery.setFirstResult(range.getStartAsInt());
             }
@@ -281,5 +273,15 @@ protected EntityManager getEntityManager() {
     protected PersistenceUnitUtil getPersistenceUnitUtil(final EntityManager 
entityManager) {
         return 
entityManager.getEntityManagerFactory().getPersistenceUnitUtil();
     }
+    
+    // -- HELPER
+
+    private <T> TypedQuery<T> selectFrom(Class<T> entityClass) {
+        var entityManager = getEntityManager();
+        var q = entityManager.getCriteriaBuilder().createQuery(entityClass);
+        q.select(q.from(entityClass));
+        return entityManager
+                .createQuery(q);
+    }
 
 }

Reply via email to