Я испытываю затруднения при выяснении, как представить следующий запрос 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.
попробуйте это, это работает с гибернацией 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();