I'm trying to get the total count of my query but doesn't work.
The query is big so I'll show to final
TypedQuery<Order> query = em.createQuery(criteriaQuery);
query.setFirstResult(Math.toIntExact(pageable.getOffset()));
query.setMaxResults(pageable.getPageSize());
Predicate[] predicateArray = new Predicate[p.size()];
p.toArray(predicateArray);
return new PageImpl<>(query.getResultList(), pageable, getTotalCount(criteriaBuilder, predicateArray));
and I create a function to make this count
private Long getTotalCount(CriteriaBuilder criteriaBuilder, Predicate[] predicateArray){
CriteriaQuery<Long> criteriaQuery = criteriaBuilder.createQuery(Long.class);
Root<Order> from = criteriaQuery.from(Order.class);
criteriaQuery.select(criteriaBuilder.count(from));
criteriaQuery.where(predicateArray);
return em.createQuery(criteriaQuery).getSingleResult();
}