For numa lista erro: Ljava.lang.Object; cannot be cast to

3 respostas
I

Olá Pessoal!

Tenho a seguinte lista:

List<ValidacaoPropostaFiliacao> validacao = validaFiliacaoService.buscaPorIdProposta(proposta.getId());

Esta lista esta retonando certinho os registros.

Para percorre-la fiz conforme abaixo:

for (ValidacaoPropostaFiliacao v : validacao) { System.out.println(">>>>> " + v.getTipoValidacaoFiliacao().getDescricao()); }

Porém retorna o seguinte erro:
[Ljava.lang.Object; cannot be cast to org.spcbrasil.filiacaoweb.model.ValidacaoPropostaFiliacao

Alguem pode ajudar?

Agradeço desde já!

3 Respostas

M

Amigo, bom dia !!

Confira sua classe “org.spcbrasil.filiacaoweb.model.ValidacaoPropostaFiliacao”, provavelmente você possui duas classes com o mesmo nome ou alguma falha nos compilados.

Faça o seguinte: limpe a pasta de fontes compilados, execute o clean e compile novamente. Se for projeto web, desinstale e instale novamente.

Isso é erro de conversão, o objeto retornado da lista não é compatível com a classe ValidacaoPropostaFiliacao.

Abaços,
Felipe Mozena

M

Se não funcionar, posta o código do método “buscaPorIdProposta()”.

Rafael_Guerreiro

Provavelmente você está usando Hibernate e com um createSQLQuery…

Você esqueceu de informar ao Hibernate que você quer que ele use a entidade ValidacaoPropostaFiliacao.

Algo assim:

session.createSQLQuery("select id, name, coluna_a from tb_validacao where name like :name").addEntity(ValidacaoPropostaFiliacao.class).setString("name", name).list();

Quando você esquece de informar a entidade, o Hibernate devolve uma lista de Array de Object… Ou seja, para cada item dessa sua lista, você tem um Object[] com o conteúdo de cada coluna.

Ficando assim:

List list = session.createSQLQuery("select id, name, coluna_a from tb_validacao where name like :name").setString("name", name).list(); // SEM o addEntity for (Object[] colunas : list) { System.out.println(colunas[0]); // valor na coluna id System.out.println(colunas[1]); // valor na coluna name System.out.println(colunas[2]); // valor na coluna coluna_a }

Criado 8 de janeiro de 2014
Ultima resposta 8 de jan. de 2014
Respostas 3
Participantes 3