'JPA Criteria, use subquery result grouping by as nested query
I have this query which i need to write it with JPA Criteria :
SELECT c.*
FROM product_manager.tmp c
JOIN ( SELECT service,
codeRegroupement,
COUNT(*)
FROM product_manager.tmp
GROUP BY service, codeRegroupement,
HAVING count(*) > 1
) b ON c.service = b.service AND c.codeRegroupement = b.codeRegroupement;
for the instant i could write the nested Query but cannot used it as a nested query :
//main Query
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery<Tmp> criteriaQuery = criteriaBuilder.createQuery(Tmp.class);
Root<Tmp> root = criteriaQuery.from(Tmp.class);
//nested Query
CriteriaQuery<Tmp> subCriteriaQuery = criteriaBuilder.createQuery(Tmp.class);
Root<Tmp> subRoot = subCriteriaQuery.from(Tmp.class);
subCriteriaQuery.groupBy(subRoot.get("codeRegroupement") , subRoot.get("service"));
subCriteriaQuery.having(criteriaBuilder.gt(criteriaBuilder.count(subRoot), 1));
subCriteriaQuery.multiselect(subRoot.get("codeRegroupement") , subRoot.get("service"));
then how to use subCriteriaQuery into criteriaQuery to get one Query ?
Query queryB = entityManager.createQuery(subCriteriaQuery);
queryB.getResultList();
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
