在 JPA 2 中,使用 CriteriaQuery,如何计算结果

2023-12-08

我对 JPA 2 相当陌生,它是 CriteriaBuilder / CriteriaQuery API:

CriteriaQuery javadoc

CriteriaQuery在 Java EE 6 教程中

我想计算 CriteriaQuery 的结果而不实际检索它们。这可能吗,我没有找到任何这样的方法,唯一的方法就是这样做:

CriteriaBuilder cb = entityManager.getCriteriaBuilder();

CriteriaQuery<MyEntity> cq = cb
        .createQuery(MyEntityclass);

// initialize predicates here

return entityManager.createQuery(cq).getResultList().size();

这不是正确的方法......

有解决办法吗?


类型的查询MyEntity将会回来MyEntity。您想要查询Long.

CriteriaBuilder qb = entityManager.getCriteriaBuilder();
CriteriaQuery<Long> cq = qb.createQuery(Long.class);
cq.select(qb.count(cq.from(MyEntity.class)));
cq.where(/*your stuff*/);
return entityManager.createQuery(cq).getSingleResult();

显然,您将希望使用示例中跳过的任何限制和分组等来构建您的表达式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 JPA 2 中,使用 CriteriaQuery,如何计算结果 的相关文章

随机推荐