【发布时间】:2014-11-19 23:47:12
【问题描述】:
我正在尝试获取特定组中的用户数,我已经完成了以下操作:
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
编辑:
这是我的用户模型:
public class User {
private String userFirstName;
private String userLastName;
/* some stuff */
@ManyToOne
private Group userGroup;
}
我的组模型有一个用 @Id 注释并命名为 id 的 int 属性。在这种情况下,如何按组 id 获取用户数?
【问题讨论】:
标签: sql hibernate jpa entitymanager