请求HQL Join Query帮助

时间:2015-05-19 20:29:01

标签: java sql hibernate hql

我有以下课程:

  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。我该如何处理这个查询?

1 个答案:

答案 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
很可能两者中的一个必须为你工作。