JPA标准API中表达参数表(JPA Criteria API IN expression Para

2019-06-24 18:03发布

有没有使用标准的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()期待类型的放慢参数长不是列表。 在我的情况下,不可能使用子查询。 谁能帮我看这个问题?

Answer 1:

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

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


Answer 2:

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

应该做的伎俩,据我所知。



文章来源: JPA Criteria API IN expression Parameter list