Как сопоставить запрос подсчета с классом pojo? - PullRequest
0 голосов
/ 13 июля 2011

Я пытаюсь выполнить запрос, который возвращает количество сотрудников и идентификатор отдела.Как я могу назначить на Pojo.И как получить набор результатов из запроса, используя спящий режим?Смотрите мой код ниже:

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

Ответы [ 2 ]

1 голос
/ 13 июля 2011

Вы можете создать соответствующий конструктор для вашего 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 
0 голосов
/ 13 июля 2011

Когда запрос возвращает проекции, а не объекты, возвращается список 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...
}

Это описано в документации .

...