Nhibernate-criteria-queries
提供:Dev Guides
NHibernate-基準クエリ
この章では、基準クエリメカニズムについて説明します。 NHibernate Query by Criteria API を使用すると、実行時に条件オブジェクトを操作してクエリを作成できます。
- このアプローチにより、文字列を直接操作せずに動的に制約を指定できますが、HQLの柔軟性やパワーをあまり失うことはありません。
- 一方、基準として表現されたクエリは、HQLで表現されたクエリよりも読みにくいことがよくあります。
- 古典的な基準構文は、次のプログラムに示すように、オブジェクトベースのクエリAPIです。
- ご覧のとおり、顧客のセッション作成基準を実行しており、現在、そのクエリに制限オブジェクトを追加しています。
- これは、ユーザーが特定のオプションを選択できるが、他のオプションは選択できないクエリページに役立ちます。
- WHERE句でANDまたはORを使用できるHQLまたはLINQではなく、クエリ構造のようなツリーのようなクエリを作成する方が簡単です。
- これらの条件オブジェクトを使用して、追加の制限を追加するだけで簡単です。
クエリを作成し、 createCriteria を使用して条件APIにアクセスし、最初の名前がHで始まる制限を追加する簡単な例を見てみましょう。
上記のコードをコンパイルして実行すると、次の出力が表示されます。
名が「Laverne」に等しい顧客を取得する別の簡単な例を見てみましょう
このアプリケーションを再度実行すると、次の出力が表示されます。
現在、基準APIの主な欠点の1つは、プロパティ名に含まれるこれらの不透明な文字列です。 したがって、名が別の名前にリファクタリングされた場合、リファクタリングツールは必ずしも不透明な文字列を取得するとは限りません。