Получение результатов из совокупного HQL-запроса - PullRequest
1 голос
/ 07 марта 2012

В настоящее время возникают проблемы с получением результатов от простой агрегатной функции с HQL.Вот мой запрос:

Query q = entityManager.createQuery("SELECT t.id.seq, COUNT(*) AS nb FROM TPEntity t WHERE t.id.num=:num GROUP BY t.id.seq");
q.setParameter("num", num);

При использовании отладчика запрос выполняется правильно.Тем не менее, я не могу найти правильный способ извлечь результат.Я получаю тонны ClassCastException.Мой текущий код не вызывает никаких исключений, но не работает:

List<Object> list = (List<Object>) q.getResultList();
if(list.size() > 0){
  for(Object o : list){
    if(o instanceof List){
      return true;
    }
  }
}
return false;

Это всегда возвращает false, событие, если отладчик показывает мне, что o имеет тип "AbstractList" с двумя элементами в нем.Конечно, возвращение true не является окончательным кодом, я хотел бы проверить, если совокупное значение больше 1. Это всего лишь промежуточный код для тестирования.Заранее спасибо за кусок кода.

1 Ответ

0 голосов
/ 06 сентября 2012

Для полноты, предложенной Марком У, вот решение для броска:

List<Object[]> list = (List<Object[]>) q.getResultList();
...