我遇到的问题是,我正在使用的图层中的代码会收到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))