Пример с помощью countDistinct в Критерии JPA запрос API

Я испытываю затруднения при выяснении, как представить следующий запрос JPQL:

SELECT count(e) FROM Foo e

использование Критериев API. То, что я пробую:

CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Foo> c = cb.createQuery(Foo.class);
Root<Foo> f = c.from(Foo.class);
c.select(cb.count(f));

но это не работает. Я также попробовал:

c.select(cb.count(f.get("id"));

Это для JPA2, Eclipselink.

6
задан Tim 7 April 2010 в 18:52
поделиться

1 ответ

попробуйте это, это работает с гибернацией 3.5.1:

CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Long> c = cb.createQuery(Long.class);
Root<Foo> f = c.from(Foo.class);
c.select(cb.count(f));
int count = em.createQuery(c).getSingleResult().intValue();
11
ответ дан 8 December 2019 в 14:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: