Я пытаюсь создать запрос «не в», используя критерии гибернации.То, что я пытаюсь получить, это все люди, которые не знают этот язык, поэтому у меня есть объект, который выглядит как:
public class Person {
...
private List<Language> languages;
...
}
public class Language {
public Long id;
public String label;
}
, и мой код критерия, который выглядит как
Criteria cr = createCriteriaForPerson() // created criteria
cr.createCriteria("languages").add(Restrictions.not(Restrictions.in("id", values)));
это возвращает всех людей, включая тех, кто владеет языком.
Если я пытаюсь найти людей, которые знают конкретный язык, то эквивалентный запрос возвращает правильные результаты
Criteria cr = createCriteriaForPerson() // created criteria
cr.createCriteria("languages").add(Restrictions.in("id", values));
В чем может быть проблема?
Спасибо, Макис