Hibernate HQLクエリ - 戻り値をnew listでList型に
2008/09/12 21:23Update
データベースに問い合わせを行う際、戻り値のコレクションに含める要素をList型にしたいときがあります。こんなとき、Hibernate HQLクエリの場合、new listを使います。
使い方
例1:
select new list(t1.c1, t2.c2) from TableEntity1 t1 ,TableEntity2 t2 where ...
例2:
select new list('Hello', 100, c.id, c.name) from Cat c where ...
※new listに指定できる項目は数に限りがありません。
※項目に、エンティティのプロパティ名や文字列、数字などを指定することが可能です。
サンプル
Hibernate HQLのnew listについて使ってみます。
◇FATHERテーブル
ID NAME
1 f01
2 f02
※FATHERに対応するエンティティやマッピングの定義をここで省きます。
◇テストコード(抜粋)
public static void testHqlNewList(Session sess) {
String hql = "select new list('Hello', 100, f.id, f.name) from Father f where f.name like 'f%'";
Query query = sess.createQuery(hql);
List <List> listList = query.list();
for (List list: listList) {
System.out.println("==========");
for (int i=0; i<list.size(); i++) {
System.out.println(String.valueOf(i) + " : " + list.get(i));
}
}
}
◇実行ログ
Hibernate: select 'Hello' as col_0_0_, 100 as col_1_0_, father0_.ID as col_2_0_, father0_.NAME as col_3_0_ from FATHER father0_ where father0_.NAME like 'f%'
==========
0 : Hello
1 : 100
2 : 1
3 : f01
==========
0 : Hello
1 : 100
2 : 2
3 : f02
Sponsored Link
Comments
- Relative Articles
- Hibernate設定ファイルその1 - hibernate.cfg.xml - (2008/07/09 14:08)
- Hibernate c3p0 - よく利用されているコネクションプーリング - (2008/07/09 15:00)
- Hibernate 方言(Dialect)一覧 - (2008/07/09 15:10)
- Hibernate のSessionとSessionFactory - (2008/07/09 15:51)
- ThreadLocal でHibernate Session を効率的に管理する - (2008/07/09 18:43)
- Hibernateで複数のDBに接続するには? - (2008/07/09 18:47)
- Hibernateとは - (2008/07/11 14:23)
- Hibernate のインストール - (2008/07/24 11:01)
- Hibernate の開発手順 - (2008/07/24 12:44)
- Hibernate SQLをログに出力方法 - (2008/07/30 16:06)