5

EJB3 エンティティで Criteria クエリを使用できますか? もしそうなら、どうすればそれらを EntityManager と組み合わせることができますか?

4

3 に答える 3

7

JPA 2.0 で導入された新機能の 1 つは Criteria API です。JPA2 実装のいずれかが必要です。

基準クエリは、EntityManager.getCriteriaBuilder() を介してアクセスされ、通常のクエリ API を介して実行されます。

EntityManager em = ...;
CriteriaBuilder qb = em.getCriteriaBuilder();
CriteriaQuery<Employee> query = qb.createQuery(Employee.class);
Root<Employee> employee = query.from(Employee.class);
query.where(qb.equal(employee.get("firstName"), "Bob"));
List<Employee> result = em.createQuery(query).getResultList();
于 2010-04-03T02:52:19.843 に答える
1

JPA 2 (クライテリア API を提供) は、JSR 220 (元の EJB/JPA 仕様) の後継と見なすことができる JSR 317 で定義されました。したがって、あなたのコメントは「本当です。しかし、それは質問の内容である JPA 1.0/EJB 3.0 の一部ではありません。」すべての一般的なアプリケーション サーバー (WebLogic、JBOSS、Glassfish など) で JPA 2 を互換的に使用できるため、これは重要ではありません。グリーン フィールド プロジェクトでは JPA 2.0 以降を使用します。多くのプロジェクトが JPA 1 を使用して実装されていますが、ほとんどの企業は JPA 1 フレームワークを置き換える過程にあります。

于 2013-06-06T18:01:59.260 に答える
0

JPA は、Hibernate のような Criteria API を提供しません。ただし、EJB3 Persistence 用の Hibernate Criteria API 設計に基づく API を提供するライブラリであるejb3criteriaを使用できます。ejb3criteria は、任意の EJB3 Persistence 実装で使用できます。

于 2009-10-16T13:41:21.813 に答える