Criteria API .in式でパラメータリストを使用する可能性はありますか? value()
はないリストlong型のPARAMTERを期待しているようJPA 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)
は動作しません:
私はこのような何かを持っています。 私の場合、サブクエリは使用できません。 誰でもこの問題について私を助けることができますか?
グレート、おかげで、私は、Hibernateを使用することだし、それはHibernateがメソッドのパラメータ「の」javax.persistence.criteria.Expressionのパラメータとして空のコレクションをサポートしていないようです:これで十分です。 http://lists.jboss.org/pipermail/hibernate-issues/2011-December/035927.html – user1414341
AFAIKを参照してください。誰もサポートしていません。空のリストが引数として渡された場合には、おそらく問合せを短絡するべきです。 –
この式(isTrueでラップされています)が、EclipseLink 2.6.2では例外PREDICATE_PASSED_TO_EVALUATIONを発生させますが、私の例では述語として完璧に機能します。 –