JPA Criteria API IN表达式参数列表

是否有可能在Criteria API .in表达式中使用参数列表?

我有这样的事情:

List list = new ArrayList(); list.add((long)1); list.add((long)2); list.add((long)3); CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaQuery criteriaQuery = cb.createQuery(Bewerbung.class); Root 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类型的参数不是列表。 在我的情况下,不可能使用子查询。 任何人都可以帮我解决这个问题吗?

无需使用CriteriaBuilder#isTrue 。 这应该足够了:

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

应该做的,AFAIK。