是B类的所有ID吗?
我想到的是遍历,bs代表B类的所有实例对象,
String hql="from A a where a.b.id =?";
for(B b :bs){
List as= session..createQuery(hql).setParameter(0,b.getId());.list();
}
每次返回一个list,然后合并,去掉相同部分。
下面是网上找的方法
public static void ArrayListSort(ArrayList list1,ArrayList list2){
//(Array)List.removeAll/addAll/retainAll
printlnList(list1,"org list1");
printlnList(list2,"org list2");
ArrayList newList=new ArrayList ();
ArrayList newList2=new ArrayList ();
ArrayList newList3=new ArrayList ();
newList2.addAll(list1);
newList3.addAll(list2);
newList2.removeAll(newList3);
newList.addAll(newList2);
newList.addAll(newList3);
printlnList(newList,"newList");
}
我也不知道行不行
直接使用子查询应该也可以吧
String hql="from A a where a.b.id in(select id from B)"
如果你不能直接查询B的话,可以写成
String hql="from A a where a.b.id in :list";
List list=new ArrayList();
list.add(B类的ID);
query.setParameterList(“list”,list);