Hibernate - 选择一对多的存在

时间:2012-01-03 12:47:11

标签: hibernate hql one-to-many

在休眠中,我有实体A和B.从A到B是一对多的(A - < B)。

我需要编写一个查询,我可以选择A(加标准)加上一个反映每个A的任何B的存在与否的附加列(在B上有一些额外的标准)

因此可能有一个A没有B,另一个A有2个B.在这种情况下,我希望返回2行,每行一个,第一个为“no”,第二个为“yes”。我并不认为“不”和“是”实际上是什么,所以我可以区分。

如果我使用左外连接,那么在很多B情况下,每个A将获得多于一行。

我怎样才能用HQL写这个?我是否需要一个小组(但你不能按我认为的实体分组)?

附加:我还需要根据某些条件限制相关的B。

1 个答案:

答案 0 :(得分:1)

一种可能的解决方案是使用case子句:

select a, case when (a.bs is empty) then false else true end from A a

join也可以使用group by,但是,正如您所注意到的,根据您的DBMS,您可能需要在group by子句中枚举实体的所有属性。