我需要根据分页数来计算分组数。例如:
select count(*) from (
select name, count(id) from customer
group by name
);
然而,由于JPA的限制,无法通过QueryDSL实现 其中JPQL不允许从子查询中选择计数。
是否可以从QueryDSL JPAQuery或JPQLQuery获取本机SQL?我的计划是通过EntityManager构造和执行select count本机SQL语句。
String subQueryNativeSQL = "..."; // native SQL from QueryDSL
Query q = em.createNativeQuery("select count(*) from (" + subQueryNativeSQL + ")");
long count = (long) q.getSingleResult();