Passei pelo mesmo problema por causa do meu SELECT, que usa funções de agrupamento, mas resolvi da seguinte maneira:
No DAO:
public List<Estatistica> getEstatistica() {
EntityManager em = getEntityManager();
Query q = null;
List<Estatistica> retorno = null;
try {
StringBuilder sql = new StringBuilder();
sql.append("select count(*), i.id_impressora, i.numero_serial ");
sql.append("from tb_impressora i, tb_trocatoner t where i.id_impressora = t.id_impressora ");
sql.append("group by i.id_impressora, i.numero_serial order by t.data_troca");
q = em.createNativeQuery(sql.toString());
retorno = q.getResultList();
}
catch (Exception e) {
e.printStackTrace();
}
return retorno;
}
No controller ficou assim:
listEstatistica = dao.getEstatistica();
Object[] item = listEstatistica.toArray();
for (Object obj : item) {
Object[] x = (Object[]) obj;
String serial = (String) x[2];
long total = (Long)x[0];
model.set(serial.toString(), total );
}
att,