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));
私の知る限り、トリックを行う必要があります。