Подтвердить что ты не робот

JPA Criteria API IN выражение Список параметров

Есть ли возможность использовать список параметров в API критериев. в выражении?

У меня есть что-то вроде этого:

    List<Long> list = new ArrayList<Long>();
    list.add((long)1);
    list.add((long)2);
    list.add((long)3);


CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Bewerbung> criteriaQuery = cb.createQuery(Bewerbung.class);
Root<Bewerbung> bewerbung = criteriaQuery.from(Bewerbung.class);

criteriaQuery.select(bewerbung).where(
cb.in(bewerbung.get(Bewerbung_.bewerberNummer)).value(list);

return em.createQuery(criteriaQuery).getResultList();

Выражение .value(list) не работает, поскольку value() ожидает параметр типа long, а не список. В моем случае невозможно использовать подзапрос. Может ли кто-нибудь помочь мне по этой проблеме?

4b9b3361

Ответ 1

Не нужно использовать CriteriaBuilder#isTrue. Этого должно быть достаточно:

criteriaQuery.select(bewerbung)
             .where(bewerbung.get(Bewerbung_.bewerberNummer)
             .in(list));

Ответ 2

cb.isTrue(bewerbung.get(Bewerbung_.bewerberNummer).in(list));

должен сделать трюк, AFAIK.