从任意JPA CriteriaQuery获取结果计数

时间:2011-08-15 22:46:16

标签: jpa criteriaquery

我遇到的问题是,我正在使用的图层中的代码会收到CriteriaQuery对象。我几乎没有关于查询的其他信息(虽然我可以很好地猜测它应该返回的对象或对象列表的类型。)我需要做的是确定它将返回的项目数量而不创建所有对象

我想做的是像([CriteraQuery的SQL版本]中的SELECT count(*))

我尝试创建一个新的CriteriaQuery,并使用CriteriaQuery参数作为子查询但无法找到方法。

我试图解析CriteriaQuery以构造一个正确的count()查询,但没有运气确定where子句的各个部分。

我找不到从CriteriaQuery生成的TypedQuery中检索SQL语句的方法。

因此,缺少以下内容:

long getCount(CriteriaQuery<?> query)
{
   return entityManager.createQuery(query).getResultList().size();
}

无论如何都要确定CriteriaQuery将返回的对象/行数?

这与In JPA 2, using a CriteriaQuery, how to count results不同,因为该问题涉及构建CriteriaQuery的情况。在这种情况下,我们给出了一个构造的CriteriaQuery(例如public int getCount(CriteriaQuery query))

0 个答案:

没有答案