HQL 菜鸟在这里,真的很挣扎。
可以说我有以下三个类:
public class A {
int id;
B b;
}
public class B {
int id;
Set<C> c;
}
public class C {
int id;
String type;
}
表 B 与 C 具有多对多关系,由表 b_c 定义。我需要一个查询,从表 A 中选择,按 C.id 分组,按 C.type = 'desiredType' 过滤,并返回 C 对象和 A.id 的计数。我一直在玩类似的东西:
SELECT c, COUNT(a.id) as count from A a JOIN a.b.c as c WHERE c.type = 'desiredType' GROUP BY c.id ORDER BY COUNT(a.id) desc
我已经玩过这个查询的不同迭代,但我不断收到各种异常,否则我的查询将不返回任何内容。我似乎不理解的主要问题是如何返回与正确类型匹配的集合的各个对象。
我希望这个问题听起来不愚蠢。我已经阅读了 HQL 手册和其他一百个 SO 问题,但我一定遗漏了一些东西。提前感谢您的任何指导。