Java.lang.NumberFormatException: For input string:

Boa tarde pessoal,
Tenho um método para contar a quantidade de ocorrencias de um mesmo produto agrupa-los, e mostrar qual produto existe uma maior ocorrência, e ao tentar acessar um atributo deste objeto como por exemplo:

<c:forEach var="lista" items="${enquete}">				
	${lista.nome}							
</c:forEach>

o mesmo me dava a Exception “java.lang.NumberFormatException: For input string:

correndo atras de uma solução, encontrei um post e em um determinado trecho ele dizia assim:

" O que eu estou retornando para esse query era para ser uma Collection de objetos do tipo Funcao, só que está sendo retornado uma Collection de array de objetos Collection<Object[]>. Logo na minha JSP ao iterar essa Collection é disparada uma exception justamente por não existir uma propriedade “f.nome” por exemplo mas apenas “f[1]” por exemplo. "

Logo, para acessar o atributo necessário precisei alterar meu forEach para

<c:forEach var="lista" items="${enquete}">				
	${lista[1].nome}							
</c:forEach>

Dessa maneira meu problema foi solucionado, mas gostaria de saber se isso pode me dar problemas futuros ?, pois eh a primeira vez que preciso acessar uma posição do array de busca e depois o atributo

Ou como posso alterar meu DAO para me trazer Collection de objetos do tipo Produto ao invés de uma “Collection de array de objetos

Sim, pode. Se os dados começarem a vir em outra posição do array.

[quote=Ace]
Ou como posso alterar meu DAO para me trazer Collection de objetos do tipo Produto ao invés de uma “Collection de array de objetos”[/quote]
Acho que o problema do DAO é aquela vírgula ali, fora do lugar, na linha 134.

Descupa man, não entendi.

Descupa man, não entendi.[/quote]
Nem eu entendo como quer que possamos dar opinião sobre o DAO se nem o código do bendito você postou aqui.

rsrs…

lavai!

public List<Voto> getVoto(){
			Criteria c = session.createCriteria(Voto.class);
			c.setProjection(
					Projections.projectionList()				
					.add(Projections.rowCount(), "qtdProd")
					.add(Projections.groupProperty("produto"))				
					);
			c.addOrder(Order.desc("qtdProd"));
			c.setMaxResults(1);
			return c.list();
		}

O problema é exatamente o método do DAO.
Creio que você precisará fazer um cast explícito ali ou, melhor ainda, criar uma variável List dentro do método, pegar o retorno de c.list() com ela e “jogar” este objeto para as outras camadas.

drsmachado cara, a dica você me deu, estava quebrando a cabeça aqui pra fazer da maneira que disse, mas fiz um monte de porcariada q não funcionou!
se não for muito incômodo poderia me mostrar a alteração no meu método? e como vou “jogar” ele para as outras camadas?

obrigado.

Pouts, agora que fui ver.
Você está criando uma query com projeção. Aí não tem jeito.
Veja bem, o resultado que você busca não está sendo recebido isolado, ele vem junto de outros dados, por isso o modo de ser retornado, como coleção de array de objetos.

Hmm, agora ficou bastante claro pra mim, porém a maneira que consegui acessar esses atributos foi como havia colocado acima, indicando a posição do array.
por enquanto a solução fica essa mesmo não tem jeito.

Mas cara, vlw pela paciência!

Abras