繁体   English   中英

休眠查询(或条件):在Where子句中使用Count

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM