Red Hat Training
A Red Hat training course is available for Red Hat JBoss Web Server
11.4.4. ネイティブ SQL のクエリ
createSQLQuery()
を使って、 SQL でクエリを表現することもできます。そして、Hibernate に、リザルトセットからオブジェクトへのマッピングを管理します。session.connection()
を呼べばどんなときでも、直接、 JDBC Connection
を使用できます。Hibernate API を使うのであれば、下記のように SQL の別名を括弧でくくらなければなりません。
List cats = session.createSQLQuery("SELECT {cat.*} FROM CAT {cat} WHERE ROWNUM<10") .addEntity("cat", Cat.class) .list();
List cats = session.createSQLQuery( "SELECT {cat}.ID AS {cat.id}, {cat}.SEX AS {cat.sex}, " + "{cat}.MATE AS {cat.mate}, {cat}.SUBCLASS AS {cat.class}, ... " + "FROM CAT {cat} WHERE ROWNUM<10") .addEntity("cat", Cat.class) .list();
SQL クエリは、Hibernate クエリと同じように、名前付きのパラメータと位置パラメータを持つことができます。 Hibernate におけるネイティブな SQL クエリの詳細については、17章ネイティブ SQLを参照してください。