在休眠中,我有实体A和B.从A到B是一对多的(A - < B)。
我需要编写一个查询,我可以选择A(加标准)加上一个反映每个A的任何B的存在与否的附加列(在B上有一些额外的标准)
因此可能有一个A没有B,另一个A有2个B.在这种情况下,我希望返回2行,每行一个,第一个为“no”,第二个为“yes”。我并不认为“不”和“是”实际上是什么,所以我可以区分。
如果我使用左外连接,那么在很多B情况下,每个A将获得多于一行。
我怎样才能用HQL写这个?我是否需要一个小组(但你不能按我认为的实体分组)?
附加:我还需要根据某些条件限制相关的B。
答案 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
子句中枚举实体的所有属性。