如何将计数查询映射到pojo类?

时间:2011-07-13 10:17:43

标签: hibernate pojo

我正在尝试执行查询,该查询返回员工和部门ID的计数。我怎样才能分配到pojo。以及如何使用hibernate从查询中检索结果集?请参阅下面的代码:

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

2 个答案:

答案 0 :(得分: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 

答案 1 :(得分: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中描述了这一点。