Hibernate(HQL)-如何查询“ where in()” in many to many

| 我有一个拥有很多汽车的用户实体。 我无法使用\“ IN \”语句通过汽车列表获取用户。
List<Car> cars = getCarsList();
String hql = \"From User WHERE user.cars in(:cars)\";
Query query = session.createQuery(hql)
query.setParameterList(\"cars\",cars);
//query.setParameterList(\"cars\",cars.toArray());//not working also
//query.setParameter(\"cars\",\"1,4,8,30\");//not working also
query.setMaxResults(1);
这样,该参数将忽略汽车。 我也尝试发送vars.toArray(); 而且我还尝试发送String 1,4,8,300(如果是汽车,则为ID)。     
已邀请:
未定义用户别名。试试看
String hql = \"from User user inner join user.cars car where car.id in (:carIds)\";
Query query = session.createQuery(hql)
query.setParameterList(\"cars\", carIds);
其中carIds是包含汽车ID的集合(而不是您的第三次尝试中的字符串)。     

要回复问题请先登录注册