繁体   English   中英

JPA Criteria API IN表达式参数列表

[英]JPA Criteria API IN expression Parameter list

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

我有这样的事情:

    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的参数不是列表。 在我的情况下,不可能使用子查询。 任何人都可以帮我解决这个问题吗?

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

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

应该做的,AFAIK。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM