我已经使用Criteria Api编写了以下代码:
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery<Entity> criteriaQuery = criteriaBuilder.createQuery(Entity.class);
Root<Entity> root = criteriaQuery.from(Entity.class);
criteriaQuery.select(root);
CriteriaQuery<Long> countQuery = criteriaBuilder.createQuery(Long.class);
countQuery.select(criteriaBuilder.count(root));
Long countOfRows = entityManager.createQuery(countQuery).getSingleResult();
结果我得到一个例外:
java.lang.IllegalStateException:没有条件查询根 指定
getSingleResult 方法(代码的最后一行)引发异常。谢谢您的帮助!
答案 0 :(得分:0)
它在强制 countQuery 添加根之后起作用:
((QueryStructure)((CriteriaQueryImpl)countQuery).queryStructure).roots.add(root)