我有以下课程:
public class A{
private Set<B> bSet;
}
public class B{
private Set<C> cSet;
private boolean isAvailable;
}
public class C{}
HQL是:
select a from A a
left join fetch a.bSet
left join fetch b.cSet
where a.id = ? and bSet.isAvailable = ?
问题是我不能在where子句中使用set。我该如何处理这个查询?
答案 0 :(得分:0)
尝试这种方式我只是为您的查询部分提供了别名
select a from A a
left join fetch a.bSet b
left join fetch b.cSet c
where a.id = ? and b.isAvailable = ?
如果这对您不起作用,请尝试更换? with:id和:isAvilable分别为folows
select a from A a
left join fetch a.bSet b
left join fetch b.cSet c
where a.id = :id and b.isAvailable = :isAvailable
很可能两者中的一个必须为你工作。