Jpa-criteria-api
JPA-基準API
Criteria APIは、エンティティのクエリを定義するために使用される定義済みのAPIです。 これは、JPQLクエリを定義する代替方法です。 これらのクエリはタイプセーフで移植性があり、構文を変更することで簡単に変更できます。 JPQLと同様に、抽象スキーマ(スキーマの編集が簡単)および埋め込みオブジェクトに従います。 メタデータAPIは基準APIと混合され、基準クエリの永続エンティティをモデル化します。
基準APIの主な利点は、コンパイル時にエラーを早期に検出できることです。 文字列ベースのJPQLクエリとJPA基準ベースのクエリは、パフォーマンスと効率が同じです。
基準の歴史API
基準APIはJPAのすべてのバージョンに含まれているため、基準APIの各ステップはJPAの仕様で通知されます。
- JPA 2.0(基準クエリAPI)では、クエリの標準化が開発されています。
- JPA 2.1には、基準の更新と削除(一括更新と削除)が含まれています。
基準クエリ構造
Criteria APIとJPQLは密接に関連しており、クエリで同様の演算子を使用して設計できます。 javax.persistence.criteriaパッケージに従って、クエリを設計します。 クエリ構造とは、構文条件クエリを意味します。
次の単純な基準クエリは、データソースのエンティティクラスのすべてのインスタンスを返します。
このクエリは、基準を作成する基本的な手順を示しています。
- EntityManagerインスタンスは、CriteriaBuilderオブジェクトの作成に使用されます。
- CriteriaQueryインスタンスは、クエリオブジェクトの作成に使用されます。 このクエリオブジェクトの属性は、クエリの詳細で変更されます。
- CriteriaQuery.fromメソッドは、クエリルートを設定するために呼び出されます。
- CriteriaQuery.selectを呼び出して、結果リストのタイプを設定します。
- TypedQuery <T>インスタンスは、実行のためにクエリを準備し、クエリ結果のタイプを指定するために使用されます。
- クエリを実行するTypedQuery <T>オブジェクトのgetResultListメソッド。 このクエリはエンティティのコレクションを返し、結果はリストに保存されます。
基準APIの例
従業員データベースの例を考えてみましょう。 jpadb.employeeテーブルに次のレコードが含まれると仮定します。
エンティティの作成
指定されたパッケージの下に Employee.java という名前のクラスを作成します。 クラスEmployeeエンティティは次のように表示されます。
Persistence.xml
データベースとエンティティクラスの登録を構成するには、Persistence.xmlファイルが必要です。
Persistence.xmlは、JPAプロジェクトのクレスト時にEclipse IDEによって作成されます。 構成の詳細はユーザー指定です。 persistence.xmlファイルは次のように表示されます。
サービスクラス
このモジュールには、MetaData API初期化を使用してCriteriaクエリパーツを実装するサービスクラスが含まれています。 ‘com.finddevguides.eclipselink.service’ という名前のパッケージを作成します。 CriteriaAPI.java という名前のクラスが、指定されたパッケージの下に作成されます。 DAOクラスは次のように表示されます。
上記のプログラムをコンパイルして実行すると、次のようにEclipse IDEのコンソールパネルに出力が表示されます。