【发布时间】:2012-06-01 07:10:27
【问题描述】:
我正在努力正确使用像 countDistinct 这样的聚合语句。我找到了一些聚合查询的示例,但没有一个是使用 countDistinct 从头到尾执行的。
我试过这个:
final CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder();
final CriteriaQuery<MyClass> query = criteriaBuilder.createQuery(MyClass.class);
final Root<MyClass> root = query.from(MyClass.class);
final Predicate yearPredicate = criteriaBuilder.equal(root.get("year"), currentYear);
query.select(root);
query.where(yearPredicate);
final Expression<Long> count = criteriaBuilder.countDistinct(root);
这是我卡住的地方。在根目录上运行countDistinct 是否正确?我如何得到结果? query.select(count); 和 criteriaBuilder.countDistinct(query) 都是非法的。如果有人能指出我正确的方向,那就太好了。
谢谢
【问题讨论】:
标签: java jpa-2.0 java-ee-6 criteria-api