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

borinquenkid pushed a commit to branch 8.0.x-hibernate7
in repository https://gitbox.apache.org/repos/asf/grails-core.git

commit 1e02d36a681576e0f9b1c1a355bbccae53ef9feb
Author: Walter Duque de Estrada <[email protected]>
AuthorDate: Fri Feb 20 11:28:54 2026 -0600

    Resolve raw type warnings and parameterized criteria query logic
---
 .../grails/orm/hibernate/query/HibernateQuery.java |  8 +--
 .../hibernate/query/JpaCriteriaQueryCreator.java   | 79 +++++++++++-----------
 .../orm/hibernate/query/JpaFromProvider.java       | 16 ++---
 .../orm/hibernate/query/PredicateGenerator.java    | 26 +++----
 4 files changed, 63 insertions(+), 66 deletions(-)

diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/HibernateQuery.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/HibernateQuery.java
index 53605fa7a5..fafeb88b7e 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/HibernateQuery.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/HibernateQuery.java
@@ -55,14 +55,14 @@ public class HibernateQuery extends Query {
     protected static final String ALIAS = "_alias";
     protected String alias;
     protected int aliasCount;
-    public DetachedCriteria getDetachedCriteria() {
+    public DetachedCriteria<?> getDetachedCriteria() {
         return detachedCriteria;
     }
     protected Map<String, CriteriaAndAlias> createdAssociationPaths = new 
HashMap<>();
     protected LinkedList<String> aliasStack = new LinkedList<>();
     protected LinkedList<PersistentEntity> entityStack = new 
LinkedList<PersistentEntity>();
     protected LinkedList<Association> associationStack = new 
LinkedList<Association>();
-    protected DetachedCriteria detachedCriteria;
+    protected DetachedCriteria<?> detachedCriteria;
     protected ProxyHandler proxyHandler = new HibernateProxyHandler();
 
     private Integer fetchSize;
@@ -76,7 +76,7 @@ public class HibernateQuery extends Query {
 
     }
 
-    public void setDetachedCriteria(DetachedCriteria detachedCriteria) {
+    public void setDetachedCriteria(DetachedCriteria<?> detachedCriteria) {
         this.detachedCriteria = detachedCriteria;
     }
 
@@ -470,7 +470,7 @@ public class HibernateQuery extends Query {
 
 
 
-    public DetachedCriteria getHibernateCriteria() {
+    public DetachedCriteria<?> getHibernateCriteria() {
         return detachedCriteria;
     }
 
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/JpaCriteriaQueryCreator.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/JpaCriteriaQueryCreator.java
index e31645ea53..6162991cf4 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/JpaCriteriaQueryCreator.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/JpaCriteriaQueryCreator.java
@@ -5,6 +5,10 @@ import jakarta.persistence.criteria.CriteriaQuery;
 import jakarta.persistence.criteria.Expression;
 import jakarta.persistence.criteria.From;
 import jakarta.persistence.criteria.Path;
+import jakarta.persistence.criteria.Root;
+import jakarta.persistence.criteria.Selection;
+import jakarta.persistence.criteria.Order;
+import jakarta.persistence.criteria.Predicate;
 import org.grails.datastore.mapping.model.PersistentEntity;
 import org.grails.datastore.mapping.query.Query;
 import org.hibernate.query.criteria.HibernateCriteriaBuilder;
@@ -15,19 +19,20 @@ import java.util.List;
 import java.util.Objects;
 import java.util.function.Function;
 
+@SuppressWarnings({"unchecked", "rawtypes"})
 public class JpaCriteriaQueryCreator {
 
     private final Query.ProjectionList projections;
     private final HibernateCriteriaBuilder criteriaBuilder;
     private final PersistentEntity entity;
-    private final DetachedCriteria detachedCriteria;
+    private final DetachedCriteria<?> detachedCriteria;
 
 
     public JpaCriteriaQueryCreator(
             Query.ProjectionList projections
             , HibernateCriteriaBuilder criteriaBuilder
             , PersistentEntity entity
-            , DetachedCriteria detachedCriteria
+            , DetachedCriteria<?> detachedCriteria
     ) {
         this.projections = projections;
         this.criteriaBuilder = criteriaBuilder;
@@ -39,7 +44,7 @@ public class JpaCriteriaQueryCreator {
 
         var projectionList = collectProjections();
         var cq = createCriteriaQuery(projectionList);
-        var root = cq.from(entity.getJavaClass());
+        Root<?> root = cq.from(entity.getJavaClass());
         var tablesByName = new JpaFromProvider(detachedCriteria,cq,root);
 
 
@@ -73,72 +78,65 @@ public class JpaCriteriaQueryCreator {
         return cq;
     }
 
-    private void assignProjections(List<Query.Projection> projections, 
CriteriaQuery cq, JpaFromProvider tablesByName) {
-        var projectionExpressions = projections
+    private <T> void assignProjections(List<Query.Projection> projections, 
CriteriaQuery<T> cq, JpaFromProvider tablesByName) {
+        List<Selection<?>> projectionExpressions = (List) projections
                 .stream()
                 .map(projectionToJpaExpression(tablesByName))
                 .filter(Objects::nonNull)
-                .map(Expression.class::cast)
                 .toList();
         if (projectionExpressions.size() == 1) {
-            cq.select(projectionExpressions.get(0));
+            cq.select((Selection<? extends T>) projectionExpressions.get(0));
         } else if (projectionExpressions.size() > 1){
             cq.multiselect(projectionExpressions);
         } else {
-            cq.select(tablesByName.getFullyQualifiedPath("root"));
+            cq.select((Selection<? extends T>) 
tablesByName.getFullyQualifiedPath("root"));
         }
     }
 
-    private void assignGroupBy(List<Query.GroupPropertyProjection> 
groupProjections, From root, CriteriaQuery cq, JpaFromProvider tablesByName) {
+    private void assignGroupBy(List<Query.GroupPropertyProjection> 
groupProjections, From<?, ?> root, CriteriaQuery<?> cq, JpaFromProvider 
tablesByName) {
         if (!groupProjections.isEmpty()) {
-            List<Expression> groupByPaths = groupProjections
+            List<Expression<?>> groupByPaths = (List) groupProjections
                     .stream()
                     .map(groupPropertyProjection -> {
                         String propertyName = 
groupPropertyProjection.getPropertyName();
                         return 
tablesByName.getFullyQualifiedPath(propertyName);
                     })
-                    .map(Expression.class::cast)
+                    .filter(Objects::nonNull)
                     .toList();
             cq.groupBy(groupByPaths);
         }
     }
 
-    private void assignOrderBy(CriteriaQuery cq, JpaFromProvider tablesByName) 
{
+    private void assignOrderBy(CriteriaQuery<?> cq, JpaFromProvider 
tablesByName) {
         List<Query.Order> orders = detachedCriteria.getOrders();
         if (!orders.isEmpty()) {
-            cq.orderBy(orders
-                    .stream()
+            List<Order> jpaOrders = (List) orders.stream()
                     .map(order -> {
-                        Path expression = 
tablesByName.getFullyQualifiedPath(order.getProperty());
+                        Path<?> expression = 
tablesByName.getFullyQualifiedPath(order.getProperty());
                         if (order.isIgnoreCase() && 
expression.getJavaType().equals(String.class)) {
-                            if 
(order.getDirection().equals(Query.Order.Direction.ASC)) {
-                                return 
criteriaBuilder.asc(criteriaBuilder.lower(expression));
-                            }  else {
-                                return 
criteriaBuilder.desc(criteriaBuilder.lower(expression));
-                            }
+                            return 
order.getDirection().equals(Query.Order.Direction.ASC)
+                                    ? 
criteriaBuilder.asc(criteriaBuilder.lower((Expression<String>) expression))
+                                    : 
criteriaBuilder.desc(criteriaBuilder.lower((Expression<String>) expression));
                         } else {
-                            if 
(order.getDirection().equals(Query.Order.Direction.ASC)) {
-                                return criteriaBuilder.asc(expression);
-                            }  else {
-                                return criteriaBuilder.desc(expression);
-                            }
+                            return 
order.getDirection().equals(Query.Order.Direction.ASC)
+                                    ? criteriaBuilder.asc(expression)
+                                    : criteriaBuilder.desc(expression);
                         }
-
                     })
-                    .toList()
-            );
+                    .toList();
+            cq.orderBy(jpaOrders);
         }
     }
 
-    private void assignCriteria(CriteriaQuery cq , From root, JpaFromProvider 
tablesByName, PersistentEntity entity) {
-        List<Query.Criterion>  criteriaList =detachedCriteria.getCriteria();
+    private void assignCriteria(CriteriaQuery<?> cq, From<?, ?> root, 
JpaFromProvider tablesByName, PersistentEntity entity) {
+        List<Query.Criterion> criteriaList = detachedCriteria.getCriteria();
         if (!criteriaList.isEmpty()) {
-            jakarta.persistence.criteria.Predicate[] predicates = new 
PredicateGenerator().getPredicates(criteriaBuilder, cq, root, criteriaList, 
tablesByName,entity);
+            Predicate[] predicates = new 
PredicateGenerator().getPredicates(criteriaBuilder, cq, root, criteriaList, 
tablesByName, entity);
             cq.where(criteriaBuilder.and(predicates));
         }
     }
 
-    private Function<Query.Projection, JpaExpression> 
projectionToJpaExpression(
+    private Function<Query.Projection, JpaExpression<?>> 
projectionToJpaExpression(
             JpaFromProvider tablesByName) {
         return projection -> {
             if (projection instanceof Query.CountProjection) {
@@ -147,34 +145,33 @@ public class JpaCriteriaQueryCreator {
                 var propertyName = countDistinctProjection.getPropertyName();
                 return 
criteriaBuilder.countDistinct(tablesByName.getFullyQualifiedPath("root." + 
propertyName));
             } else if (projection instanceof Query.IdProjection) {
-                return (JpaExpression) 
tablesByName.getFullyQualifiedPath("root.id");
+                return (JpaExpression<?>) 
tablesByName.getFullyQualifiedPath("root.id");
             } else if (projection instanceof Query.DistinctProjection) {
                 return null;
             } else {
                 var propertyName = ((Query.PropertyProjection) 
projection).getPropertyName();
-                Path path = tablesByName.getFullyQualifiedPath(propertyName);
+                Path<?> path = 
tablesByName.getFullyQualifiedPath(propertyName);
                 if (projection instanceof Query.MaxProjection) {
-                    return criteriaBuilder.max(path);
+                    return criteriaBuilder.max((Expression<? extends 
Number>)path);
                 } else if (projection instanceof Query.MinProjection) {
-                    return criteriaBuilder.min(path);
+                    return criteriaBuilder.min((Expression<? extends 
Number>)path);
                 } else if (projection instanceof Query.AvgProjection) {
-                    return criteriaBuilder.avg(path);
+                    return criteriaBuilder.avg((Expression<? extends 
Number>)path);
                 } else if (projection instanceof Query.SumProjection) {
-                    return criteriaBuilder.sum(path);
+                    return criteriaBuilder.sum((Expression<? extends 
Number>)path);
                 } else { // keep this last!!!
-                    return (JpaExpression)path;
+                    return (JpaExpression<?>)path;
                 }
             }
         };
     }
 
     private List<Query.GroupPropertyProjection> collectGroupProjections() {
-        List<Query.GroupPropertyProjection> groupProjections = 
projections.getProjectionList()
+        return projections.getProjectionList()
                 .stream()
                 .filter(Query.GroupPropertyProjection.class::isInstance)
                 .map(Query.GroupPropertyProjection.class::cast)
                 .toList();
-        return groupProjections;
     }
 
 }
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/JpaFromProvider.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/JpaFromProvider.java
index 1f1b67c96e..6ade44807b 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/JpaFromProvider.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/JpaFromProvider.java
@@ -21,18 +21,18 @@ import java.util.stream.Stream;
 
 public class JpaFromProvider implements Cloneable {
 
-    private Map<String, From> fromMap;
+    private Map<String, From<?, ?>> fromMap;
 
-    private JpaFromProvider(Map<String, From> fromMap) {
+    private JpaFromProvider(Map<String, From<?, ?>> fromMap) {
         this.fromMap = new HashMap<>(fromMap);
     }
 
 
-    public JpaFromProvider(DetachedCriteria detachedCriteria, 
JpaCriteriaQuery<?> cq, From root) {
+    public JpaFromProvider(DetachedCriteria<?> detachedCriteria, 
JpaCriteriaQuery<?> cq, From<?, ?> root) {
         fromMap = getFromsByName(detachedCriteria, cq, root);
     }
 
-    private Map<String, From> getFromsByName(DetachedCriteria 
detachedCriteria, JpaCriteriaQuery<?> cq, From root) {
+    private Map<String, From<?, ?>> getFromsByName(DetachedCriteria<?> 
detachedCriteria, JpaCriteriaQuery<?> cq, From<?, ?> root) {
         var detachedAssociationCriteriaList = ((List<Query.Criterion>) 
detachedCriteria.getCriteria())
                 .stream()
                 .map(new DetachedAssociationFunction())
@@ -42,7 +42,7 @@ public class JpaFromProvider implements Cloneable {
         var aliasMap = createAliasMap(detachedAssociationCriteriaList);
         //The join column is column for joining from the root entity
         var detachedFroms = createDetachedFroms(cq, 
detachedAssociationCriteriaList);
-        Map<String, From> fromsByName = 
Stream.concat(aliasMap.keySet().stream(), ((Map<String, FetchType>) 
detachedCriteria.getFetchStrategies())
+        Map<String, From<?, ?>> fromsByName = 
Stream.concat(aliasMap.keySet().stream(), ((Map<String, FetchType>) 
detachedCriteria.getFetchStrategies())
                         .entrySet()
                         .stream()
                         .filter(entry -> 
entry.getValue().equals(FetchType.EAGER))
@@ -55,7 +55,7 @@ public class JpaFromProvider implements Cloneable {
                             .map(dac -> 
dac.getAssociation().getOwner().getJavaClass())
                             .orElse(root.getJavaType());
                     // Choose base From: use outer root only if join belongs 
to the outer root type; otherwise create a detached root for the owner
-                    From base = ownerClass.equals(root.getJavaType())
+                    From<?, ?> base = ownerClass.equals(root.getJavaType())
                             ? root
                             : detachedFroms.computeIfAbsent(joinColumn, s -> 
cq.from(ownerClass));
 
@@ -77,7 +77,7 @@ public class JpaFromProvider implements Cloneable {
         return fromsByName;
     }
 
-    private Map<String, From> createDetachedFroms(JpaCriteriaQuery<?> cq, 
List<DetachedAssociationCriteria> detachedAssociationCriteriaList) {
+    private Map<String, From<?, ?>> createDetachedFroms(JpaCriteriaQuery<?> 
cq, List<DetachedAssociationCriteria> detachedAssociationCriteriaList) {
         return detachedAssociationCriteriaList.stream()
                 .collect(Collectors.toMap(
                         DetachedAssociationCriteria::getAssociationPath,
@@ -121,7 +121,7 @@ public class JpaFromProvider implements Cloneable {
     }
 
 
-    public void put(String tableName, From child) {
+    public void put(String tableName, From<?, ?> child) {
         fromMap.put(tableName, child);
     }
 }
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/PredicateGenerator.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/PredicateGenerator.java
index aafd7bccf9..f51fb781ce 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/PredicateGenerator.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/PredicateGenerator.java
@@ -39,8 +39,8 @@ public class PredicateGenerator {
     private static final Logger log = 
LoggerFactory.getLogger(PredicateGenerator.class);
 
     public Predicate[] getPredicates(HibernateCriteriaBuilder cb,
-                                     CriteriaQuery criteriaQuery,
-                                     From root_,
+                                     CriteriaQuery<?> criteriaQuery,
+                                     From<?, ?> root_,
                                      List criteriaList, 
                                      JpaFromProvider fromsByProvider, 
                                      PersistentEntity entity) {
@@ -56,7 +56,7 @@ public class PredicateGenerator {
         return list.toArray(new Predicate[0]);
     }
 
-    private Predicate handleCriterion(HibernateCriteriaBuilder cb, 
CriteriaQuery criteriaQuery, From root_, JpaFromProvider fromsByProvider, 
PersistentEntity entity, Object criterion) {
+    private Predicate handleCriterion(HibernateCriteriaBuilder cb, 
CriteriaQuery<?> criteriaQuery, From<?, ?> root_, JpaFromProvider 
fromsByProvider, PersistentEntity entity, Object criterion) {
         if (criterion instanceof Query.Junction junction) {
             return handleJunction(cb, criteriaQuery, root_, fromsByProvider, 
entity, junction);
         } else if (criterion instanceof Query.DistinctProjection) {
@@ -77,7 +77,7 @@ public class PredicateGenerator {
         throw new IllegalArgumentException("Unsupported criterion: " + 
criterion);
     }
 
-    private Predicate handleJunction(HibernateCriteriaBuilder cb, 
CriteriaQuery criteriaQuery, From root_, JpaFromProvider fromsByProvider, 
PersistentEntity entity, Query.Junction junction) {
+    private Predicate handleJunction(HibernateCriteriaBuilder cb, 
CriteriaQuery<?> criteriaQuery, From<?, ?> root_, JpaFromProvider 
fromsByProvider, PersistentEntity entity, Query.Junction junction) {
         var predicates = getPredicates(cb, criteriaQuery, root_, 
junction.getCriteria(), fromsByProvider, entity);
         if (junction instanceof Query.Disjunction) {
             return cb.or(predicates);
@@ -93,14 +93,14 @@ public class PredicateGenerator {
         return null;
     }
 
-    private Predicate handleAssociationCriteria(HibernateCriteriaBuilder cb, 
CriteriaQuery criteriaQuery, From root_, JpaFromProvider fromsByProvider, 
PersistentEntity entity, DetachedAssociationCriteria<?> c) {
+    private Predicate handleAssociationCriteria(HibernateCriteriaBuilder cb, 
CriteriaQuery<?> criteriaQuery, From<?, ?> root_, JpaFromProvider 
fromsByProvider, PersistentEntity entity, DetachedAssociationCriteria<?> c) {
         Join child = root_.join(c.getAssociationPath(), JoinType.LEFT);
         JpaFromProvider childTablesByName = (JpaFromProvider) 
fromsByProvider.clone();
         childTablesByName.put("root", child);
         return cb.and(getPredicates(cb, criteriaQuery, child, c.getCriteria(), 
childTablesByName, entity));
     }
 
-    private Predicate handlePropertyCriterion(HibernateCriteriaBuilder cb, 
CriteriaQuery criteriaQuery, From root_, JpaFromProvider fromsByProvider, 
PersistentEntity entity, Query.PropertyCriterion pc) {
+    private Predicate handlePropertyCriterion(HibernateCriteriaBuilder cb, 
CriteriaQuery<?> criteriaQuery, From<?, ?> root_, JpaFromProvider 
fromsByProvider, PersistentEntity entity, Query.PropertyCriterion pc) {
         var fullyQualifiedPath = 
fromsByProvider.getFullyQualifiedPath(pc.getProperty());
 
         if (pc instanceof Query.NotIn c) {
@@ -147,7 +147,7 @@ public class PredicateGenerator {
         return null;
     }
 
-    private Predicate handleNotIn(HibernateCriteriaBuilder cb, CriteriaQuery 
criteriaQuery, JpaFromProvider fromsByProvider, PersistentEntity entity, 
Query.NotIn c, Path fullyQualifiedPath) {
+    private Predicate handleNotIn(HibernateCriteriaBuilder cb, 
CriteriaQuery<?> criteriaQuery, JpaFromProvider fromsByProvider, 
PersistentEntity entity, Query.NotIn c, Path fullyQualifiedPath) {
         var queryableCriteria = getQueryableCriteriaFromInCriteria(c);
         if (Objects.nonNull(queryableCriteria)) {
             return cb.not(getQueryableCriteriaValue(cb, criteriaQuery, 
fromsByProvider, entity, c, queryableCriteria));
@@ -170,7 +170,7 @@ public class PredicateGenerator {
         return cb.not(cb.in(fullyQualifiedPath, c.getValue()));
     }
 
-    private Predicate handleIn(HibernateCriteriaBuilder cb, CriteriaQuery 
criteriaQuery, JpaFromProvider fromsByProvider, PersistentEntity entity, 
Query.In c, Path fullyQualifiedPath) {
+    private Predicate handleIn(HibernateCriteriaBuilder cb, CriteriaQuery<?> 
criteriaQuery, JpaFromProvider fromsByProvider, PersistentEntity entity, 
Query.In c, Path fullyQualifiedPath) {
         var queryableCriteria = getQueryableCriteriaFromInCriteria(c);
         if (Objects.nonNull(queryableCriteria)) {
             return getQueryableCriteriaValue(cb, criteriaQuery, 
fromsByProvider, entity, c, queryableCriteria);
@@ -192,7 +192,7 @@ public class PredicateGenerator {
         return cb.equal(cb.function(GrailsRLikeFunctionContributor.RLIKE, 
Boolean.class, fullyQualifiedPath, cb.literal(pattern)), true);
     }
 
-    private Predicate handleSubqueryCriterion(HibernateCriteriaBuilder cb, 
CriteriaQuery criteriaQuery, JpaFromProvider fromsByProvider, PersistentEntity 
entity, Query.SubqueryCriterion c) {
+    private Predicate handleSubqueryCriterion(HibernateCriteriaBuilder cb, 
CriteriaQuery<?> criteriaQuery, JpaFromProvider fromsByProvider, 
PersistentEntity entity, Query.SubqueryCriterion c) {
         Subquery subquery = criteriaQuery.subquery(Number.class);
         Root from = 
subquery.from(c.getValue().getPersistentEntity().getJavaClass());
         JpaFromProvider newMap = (JpaFromProvider) fromsByProvider.clone();
@@ -231,7 +231,7 @@ public class PredicateGenerator {
         return null;
     }
 
-    private Predicate 
handlePropertyComparisonCriterion(HibernateCriteriaBuilder cb, JpaFromProvider 
fromsByProvider, From root_, Query.PropertyComparisonCriterion c) {
+    private Predicate 
handlePropertyComparisonCriterion(HibernateCriteriaBuilder cb, JpaFromProvider 
fromsByProvider, From<?, ?> root_, Query.PropertyComparisonCriterion c) {
         Path path = fromsByProvider.getFullyQualifiedPath(c.getProperty());
         Path otherPath = root_.get(c.getOtherProperty());
         if (c instanceof Query.EqualsProperty) return cb.equal(path, 
otherPath);
@@ -252,7 +252,7 @@ public class PredicateGenerator {
         return null;
     }
 
-    private Predicate handleExists(HibernateCriteriaBuilder cb, CriteriaQuery 
criteriaQuery, From root_, JpaFromProvider fromsByProvider, PersistentEntity 
entity, Query.Exists c) {
+    private Predicate handleExists(HibernateCriteriaBuilder cb, 
CriteriaQuery<?> criteriaQuery, From<?, ?> root_, JpaFromProvider 
fromsByProvider, PersistentEntity entity, Query.Exists c) {
         Subquery subquery = criteriaQuery.subquery(Integer.class);
         PersistentEntity childPersistentEntity = 
c.getSubquery().getPersistentEntity();
         Root subRoot = subquery.from(childPersistentEntity.getJavaClass());
@@ -265,7 +265,7 @@ public class PredicateGenerator {
         return cb.exists(subquery);
     }
 
-    private CriteriaBuilder.In 
getQueryableCriteriaValue(HibernateCriteriaBuilder cb, CriteriaQuery 
criteriaQuery, JpaFromProvider fromsByProvider, PersistentEntity entity, 
Query.PropertyNameCriterion criterion, QueryableCriteria queryableCriteria) {
+    private CriteriaBuilder.In 
getQueryableCriteriaValue(HibernateCriteriaBuilder cb, CriteriaQuery<?> 
criteriaQuery, JpaFromProvider fromsByProvider, PersistentEntity entity, 
Query.PropertyNameCriterion criterion, QueryableCriteria queryableCriteria) {
         var projection = findPropertyOrIdProjection(queryableCriteria);
         var subProperty = findSubproperty(projection);
         var path = 
fromsByProvider.getFullyQualifiedPath(criterion.getProperty());
@@ -279,7 +279,7 @@ public class PredicateGenerator {
         return in.value(subquery);
     }
 
-    private Predicate getExistsPredicate(HibernateCriteriaBuilder cb, From 
root_, PersistentEntity childPersistentEntity, Root subRoot) {
+    private Predicate getExistsPredicate(HibernateCriteriaBuilder cb, From<?, 
?> root_, PersistentEntity childPersistentEntity, Root subRoot) {
         Association owner = childPersistentEntity.getAssociations().stream()
                 .filter(assoc -> 
assoc.getAssociatedEntity().getJavaClass().equals(root_.getJavaType()))
                 .findFirst().orElseThrow();

Reply via email to