From 2b9960fc9a44dc7625d195c204820fc4916d6499 Mon Sep 17 00:00:00 2001 From: Josefina Revilla Date: Wed, 13 Sep 2023 19:02:37 -0300 Subject: [PATCH] Fix in criteriaQuery to consider mgrFilters --- .../dbsupport/src/main/java/org/jpos/ee/DBManager.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/modules/dbsupport/src/main/java/org/jpos/ee/DBManager.java b/modules/dbsupport/src/main/java/org/jpos/ee/DBManager.java index adde312708..ee9aa6adf6 100644 --- a/modules/dbsupport/src/main/java/org/jpos/ee/DBManager.java +++ b/modules/dbsupport/src/main/java/org/jpos/ee/DBManager.java @@ -263,16 +263,18 @@ protected CriteriaQuery createCriteriaQuery(boolean internalFilters, DBFilter @SafeVarargs protected final CriteriaQuery createCriteriaQuery(boolean internalFilters, DBFilter... filters) { - CriteriaQuery query = createCriteriaQuery(internalFilters, (DBFilter) null); CriteriaBuilder cb = db.session().getCriteriaBuilder(); + CriteriaQuery query = cb.createQuery(clazz); Root root = query.from(clazz); Predicate combinedPredicate = cb.and(Arrays.stream(filters) .filter(f -> f != null) .map(f -> f.createPredicate(cb, root)) .toArray(Predicate[]::new)); - Predicate restriction = query.getRestriction(); - if (restriction != null) { - combinedPredicate = cb.and(restriction,combinedPredicate); + Predicate[] mgrFilters = buildFilters(root); + if (mgrFilters != null) { + Predicate[] nonNullPredicates = Arrays.stream(mgrFilters).filter(f -> f != null).toArray(Predicate[]::new); + Predicate mgrPredicate = cb.and(nonNullPredicates); + combinedPredicate = cb.and(mgrPredicate, combinedPredicate); } query.distinct(true); return query.where(combinedPredicate);