[英]Hibernate Query (or criteria): using Count in Where Clause
我有以下1个课程:
public Class Customer{
@id
int id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "ParentID")
Customer parentId
}
我如何可以选择共有儿童小于2以上所有的客户?
使用以下类型的查询。 仅供参考。 根据您的要求更改代码。
select Customer.customerId , count(Customer.children)
from Customer
group by Customer.customerId
having count(Customer.children) > 2
我假设您将使用@OneToMany关系添加子项。
您可以按父实体分组,根据关联客户的数量进行过滤
SELECT p
FROM Customer c JOIN c.parentId p
GROUP BY p
HAVING COUNT(c) > 2
请检查是否有您想要的条件。
如果Hibernate版本完全实现了JPA规范(在JPA 2.1规范中,请参见4.7节),则应支持该查询。
我不确定Hibernate是否允许这样做。 如果遇到任何麻烦,请考虑HH-group by子句中的内容,并注意未聚合的属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.