Hibernate java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to

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,

[quote=thiago.filadelfo]Não…

É da parte do hibernate mesmo.
Desta daqui…

List&lt;Object[]&gt; objs = query.list(); 

// Aqui vai ser manipulado o objs.
//Cria suaLiistaModel
for(int i=0;objs....i++){
   
     Object[] aux = obj.get(i);
     
     //Objeto que sualistaModel recebe, vamos chamar de x

      x.setId((Integer)aux[0]) // id
      x.setStatus.......

      suaListaModel.add(x);
}

return suaListaModel; 

Mais ou menos isso que tinha falado.
Acho que isso deve resolver seu problema

Editado:
x.setId((String)aux[0]) // id[/quote]

thiago.filadelfo valeuu cara!
Eu estava apanhando a horas pra conseguir pegar os valores em um caso parecido com o do Vitor e consegui de primeira com o seu exemplo…

VALEUUU! :smiley:

Grande abraço.

André Gomes.