我编写了以下代码来获取“ ExampleEntity ”的计数:
cb = entityManager.getCriteriaBuilder();
CriteriaQuery<Long> cq = cb.createQuery(Long.class);
root = cq.from(ExampleEntity);
cq.select(cb.count(root));
return entityManager.createQuery(cq).getSingleResult();
生成的sql: 休眠:从EXAMPLEENTITY exampleen0_中选择count(exampleen0_.id)作为col_0_0_
但是,出于性能原因(使用 Oracle 11g 数据库),我需要生成以下 sql:
所需的sql:从EXAMPLEENTITY exampleen0_中选择count(*)作为col_0_0_
创建 JPQL 查询非常简单,但我必须为过滤器重写大量现有代码。
如何使用 CriteriaQuery 生成“count(*)”而不是“count(exampleen0_.id)”?