2011-07-13 5 views
0

私は、従業員の数と部門IDを返すクエリを実行しようとしています。 pojoにどのように割り当てることができますか?そして、hibernateを使ってクエリから結果セットを取り出す方法は?以下の私のコードを参照してください:countクエリをpojoクラスにマップする方法は?

select e.depid, count(empid) from empwithdep e, 
    dept d where e.depid=d.depid group by e.depid order by e.depid 

答えて

0

クエリではなく実体よりも突起部を返すとき、返されたリストはList<Object[]>です。各Object[]は、クエリによって返された列が含まれています

List<Object[]> rows = query.list(); 
for (Object[] row : rows) { 
    Long depId = (Long) row[0]; 
    Long count = (Long) row[1]; 
    // create a POJO using depId and count... 
} 

これはthe documentationに記載されています。

1

あなたのPOJOのための適切なコンストラクタを作成し、コンストラクタの構文を使用することができます。

select new DepartmentInfo(e.depid, count(empid)) from empwithdep e, 
    dept d where e.depid=d.depid group by e.depid order by e.depid 
関連する問題