关于HQL 一对多表查询问题

来源:百度知道 编辑:UC知道 时间:2024/06/01 20:10:56
public class A{ private Integer id;private String name; private Set inAppraises = new HashSet(0);}
public class B{ private Integer id; private A a;String check;}
我想查出所有的A,但要求A中的集合B只取check="已审核"的B.应该如何写HQL语句,请高手帮帮忙。
可以说的详细点吗?

//首先得到所有的A
List list = session.createQuery("from A").list();
//然后遍历list
for(int i=0;i<list.size();i++){
A a = (A)list.get(i);
Set setInAppraises = a.getInAppraises();
//然后遍历集合set
for(Iterator ite = setInAppraises.iterator();ite.hasNext();){
B b = (B)ite.next();
if(b.getCheck().equals("已审核")){
//这里输出的a的id全部是check="已审核"
System.out.println("a.id = "a.getId());

}
}
}

定义一个filter