Hibernate-criteria-queries
Hibernate-基準クエリ
Hibernateは、RDBMSテーブルで利用可能なオブジェクトとデータを操作する別の方法を提供します。 メソッドの1つにCriteria APIがあります。このAPIを使用すると、フィルタールールと論理条件を適用できるプログラムで条件クエリオブジェクトを構築できます。
Hibernate Session インターフェースは* createCriteria()メソッドを提供します。このメソッドを使用して、アプリケーションが条件クエリを実行するときに永続化オブジェクトのクラスのインスタンスを返す *Criteria オブジェクトを作成できます。
次に、条件クエリの最も単純な例を示します。これは、Employeeクラスに対応するすべてのオブジェクトを返すだけです。
基準の制限
以下は、さまざまなシナリオをカバーするいくつかの例であり、要件に従って使用できます-
次のようにLogicalExpression制限を使用してANDまたはOR条件を作成できます-
前のチュートリアルで説明したように、上記のすべての条件はHQLで直接使用できます。
基準を使用したページネーション
ページネーションのためのCriteriaインターフェースには2つの方法があります。
Sr.No. | Method & Description |
---|---|
1 |
public Criteria setFirstResult(int firstResult) このメソッドは、結果セットの行0から始まる最初の行を表す整数を受け取ります。 |
2 |
public Criteria setMaxResults(int maxResults) このメソッドは、オブジェクトの固定数 maxResults を取得するようにHibernateに指示します。 |
上記の2つの方法を一緒に使用して、WebアプリケーションまたはSwingアプリケーションでページングコンポーネントを構築できます。 以下は、一度に10行をフェッチするように拡張できる例です-
結果の並べ替え
Criteria APIは org.hibernate.criterion.Order クラスを提供し、オブジェクトのプロパティの1つに従って、結果セットを昇順または降順でソートします。 この例では、Orderクラスを使用して結果セットを並べ替える方法を示します-
予測と集計
Criteria APIは org.hibernate.criterion.Projections クラスを提供します。これを使用して、プロパティ値の平均、最大、または最小を取得できます。 Projectionsクラスは、 Projection インスタンスを取得するためのいくつかの静的ファクトリメソッドを提供するという点で、Restrictionsクラスに似ています。
以下は、さまざまなシナリオをカバーするいくつかの例であり、要件ごとに使用できます-
基準クエリの例
次のPOJOクラスを考慮してください-
次のEMPLOYEEテーブルを作成して、Employeeオブジェクトを保存します-
以下はマッピングファイルです。
最後に、main()メソッドを使用してアプリケーションクラスを作成し、 Criteria クエリを使用するアプリケーションを実行します-
コンパイルと実行
上記のアプリケーションをコンパイルして実行する手順は次のとおりです。 コンパイルと実行に進む前に、PATHとCLASSPATHを適切に設定してください。
- 構成の章で説明されているように、hibernate.cfg.xml構成ファイルを作成します。
- 上記のように、Employee.hbm.xmlマッピングファイルを作成します。
- 上記のようにEmployee.javaソースファイルを作成し、コンパイルします。
- 上記のようにManageEmployee.javaソースファイルを作成し、コンパイルします。 *ManageEmployeeバイナリを実行してプログラムを実行します。
次の結果が得られ、EMPLOYEEテーブルにレコードが作成されます。
EMPLOYEEテーブルを確認する場合、次のレコードが必要です。