Amigos, estou com problema em fazer cast de uma lista de objetos retornado do metodo list() de uma query do hibernate, no momento de mostrar os dados retornados do list() ele retorna o erro:
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to Utils.DadosRelatorio
at Teste.TesteDocumentoConsulta.testeRelatorioClassificacaoCNMP(TesteDocumentoConsulta.java:86)
at Teste.TesteDocumentoConsulta.main(TesteDocumentoConsulta.java:22)
Meu método de retorno:
public List<DadosRelatorio> RelatorioCNMPPorGrupoOficio(Integer nroGrupoOficioAtuacao,Date dtaChegadaInicio,Date dtaChegadaFim) {
String query =
"select i.codigo as codigoItem, " +
"i.nome as nomeItem, " +
"tido.tidoNome as tipoDocumentoNome," +
"count(*) as totalItens " +
"from Auto a, Itens i,Documento doc," +
"GrupoOficioAtuacao gofa, TipoDocumento tido " +
"where a.codigoClasse=i.codigo " +
"and i.tipoItem='C' " +
"and a.autoNumero=doc.auto " +
"and doc.gofaNumero=gofa.gofaNumero " +
"and doc.tidoNumero=tido.tidoNumero " +
"and doc.gofaNumero=:nroGofa " +
"and doc.docDataChegada>=:dataInicio " +
"and doc.docDataChegada<=:dataFim " +
"group by i.codigo,i.nome,tido.tidoNome,gofa.gofaNome " +
"order by gofa.gofaNome)";
Query consulta = session.createQuery(query);
consulta.setInteger("nroGofa",nroGrupoOficioAtuacao);
consulta.setDate("dataInicio",dtaChegadaInicio);
consulta.setDate("dataFim",dtaChegadaFim);
return consulta.list();
}
Classe que estou tentando fazer cast:
public class DadosRelatorio {
Long codigoItem;
String nomeItem;
String tipoDocumentoNome;
Long totalItens;
public Long getCodigoItem() {
return codigoItem;
}
public void setCodigoItem(Long codigoItem) {
this.codigoItem = codigoItem;
}
public String getNomeItem() {
return nomeItem;
}
public void setNomeItem(String nomeItem) {
this.nomeItem = nomeItem;
}
public String getTipoDocumentoNome() {
return tipoDocumentoNome;
}
public void setTipoDocumentoNome(String tipoDocumentoNome) {
this.tipoDocumentoNome = tipoDocumentoNome;
}
public Long getTotalItens() {
return totalItens;
}
public void setTotalItens(Long totalItens) {
this.totalItens = totalItens;
}
}
Já tentei fazer o cast direto no retorno do método, mas não deu certo, não estou conseguindo listar os dados que a list() me retorna.
Qualquer ajuda é bem-vinda