我正在构建一个Spring Web应用程序,而且我是JPA的新手,我需要获取数据库中特定组的用户数。
以下是示例代码:
public long countAllUsersByGroup(int groupId) {
CriteriaBuilder qb = em.getCriteriaBuilder();
CriteriaQuery<Long> cq = qb.createQuery(Long.class);
cq.select(qb.count(cq.from(User.class)));
//cq.where(qb.equal(cq.from(User.class).get("userGroup").get("id"),groupId));
return em.createQuery(cq).getSingleResult();
}
此代码正常运行,它允许我检索数据库中的用户数量,这非常简单。
这是我的用户模型:
public class User {
private String userFirstName;
private String userLastName;
/* some stuff */
@ManyToOne
private Group userGroup;
}
我的组模型有一个用@Id
注释的int属性,名为id
。在这种情况下,如何获取用户组ID?
答案 0 :(得分:1)
您可以尝试以下代码
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Long> q = cb.createQuery(Long.class);
ParameterExpression<Integer> p = cb.parameter(Integer.class);
q.select(q.count(q.from(User.class))).where(cb.gt(c.get("userGroup"), someId));