のような集計ステートメントの適切な使用に苦労しています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)
、どちらも違法です。誰かが私を正しい方向に向けることができれば、それは素晴らしいことです.
ありがとうございました