我正在尝试执行查询,该查询返回员工和部门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
答案 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中描述了这一点。