JPA2基準APIを使用して次のようなクエリを実行する方法はありますか?
select a from b where a in (1, 2, 3, 4)
プレーンな Hibernate を使用してそれを行う方法はありますが、JPA2 ではそのようなものを見つけることができません。
JPA2基準APIを使用して次のようなクエリを実行する方法はありますか?
select a from b where a in (1, 2, 3, 4)
プレーンな Hibernate を使用してそれを行う方法はありますが、JPA2 ではそのようなものを見つけることができません。
はい JPA 2 Critera は、エンティティから特定のフィールドを返すこと、および句を含む where 句を使用することをサポートしていますin
。JPQL を取り、それを同様の JPA 2 Criteria ベースのオプションに変換する例を以下に示します。
JPQL:
select b.a from B b where a in (1, 2, 3, 4)
基準:
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
// assuming a is an Integer
// if returning multiple fields, look into using a Tuple
// or specifying the return type as an Object or Object[]
CriteriaQuery<Integer.class> query = criteriaBuilder.createQuery(Integer.class);
Root<B.class> from = query.from(Bean.class);
query.select(from.get("a"))
.where(from.get("a").in(1, 2, 3, 4));
// create query and execute...
...
を使用した追加の例を示すリンクを次に示しますin
。
お役に立てれば!