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);