Предложение 'IN' в hibernate: очень , очень сложно, и, насколько я помню, не очень хорошо работает с именованными параметрами, но с позиционными параметрами.
Попробуйте изменить запрос на этот
@NamedQuery(name = "someName", query = "select x from X x where x.y.id in (?)")
и код, который его использует, на
TypedQuery<X> query = getEntityManager().createNamedQuery("someName", X.class);
query.setParameter(1, someListOfLongs); // I can't remember if the position is 0 or 1 based.
queryFinal.getResultList();
И я должен добавить, что если список будет emtpy, вы 'Я получу исключение.В нашем коде мы обнаруживаем эту ситуацию и заменяем пустой список списком, который содержит «-1», и, поскольку все идентификаторы положительны, мы не получаем никаких результатов обратно.