Я пытаюсь получить количество пользователей в конкретной группе, я сделал следующее:Неожиданное Cross Join генерируемый SQL Использование EntityManager с Hibernate
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Long> q = cb.createQuery(Long.class);
q.select(cb.count(q.from(User.class))).where(cb.equal(q.from(User.class).get("userGroup"), groupId));
Но вместо того, чтобы количество пользователей в группа, я получаю это число, умноженное на количество всех пользователей в моей таблице, генерируется запрос ORM выглядит следующим образом:
Hibernate: select count(*) as col_0_0_ from app_user user0_ cross join app_user user1_ where user1_.user_group=1
EDIT:
Это мой пользователь Модель:
public class User {
private String userFirstName;
private String userLastName;
/* some stuff */
@ManyToOne
private Group userGroup;
}
И моя группа модель имеет атрибут ИНТ аннотированный с @Id и именем идентификатора. Как я могу получить количество пользователей по идентификатору группы в этом случае?
Спасибо за объяснение ... – TheByeByeMan