Nhibernate-native-sql
提供:Dev Guides
NHibernate-ネイティブSQL
この章では、NHibernateでネイティブSQLクエリを使用する方法について説明します。 手書きのSQLを何年も使用している場合、ORMがあなたが慣れている表現力と柔軟性の一部を奪うことを心配するかもしれません。
- NHibernateの強力なクエリ機能を使用すると、SQLで行うことのほとんどすべてを実行できます。
- NHibernateの独自のクエリ機能を使用して、望みどおりの動作をさせることができないまれな場合。 *NHibernateでは、データベースのネイティブSQLダイアレクトを使用してオブジェクトを取得できます。
NHibernateのネイティブSQLクエリの簡単な例を見てみましょう。
上記の例では、* CreateSQLQuery()*を使用してオブジェクトのリストを取得します。また、クエリが返すルートエンティティタイプがCustomerとして指定されていることにも気付くでしょう。
アプリケーションを実行してみましょう。すべての顧客がデータベースから取得されていることがわかります。
以下は、ネイティブSQLクエリを記述する別の方法です。
- ご覧のとおり、上記のクエリでは、SQLクエリ文字列と、返される列と型が指定されています。
- これにより、Customerテーブルの各列にスカラー値を持つオブジェクト配列のIListが返されます。
- クエリが*を使用しており、リストされている3つ以上の列を返す可能性がある場合でも、これらの3つの列のみが返されます。
別の簡単な例を見てみましょう。
アプリケーションを再度実行すると、次の出力が表示されます。
同様に、任意のタイプのSQLクエリを指定して、データベースからデータを取得できます。