Pessoal,
Não estou entendo o que está acontecendo, sempre usei a tag forEach para percorrer a minha lista, porém agora está dando erro. Até agora toda lista que percorria era gerada pelo metodo list() da API Criteria, porém ao criar um SQLQuery, ao inves de Criteria e dar um list() tambem, não consigo percorrer a lista de resultados dessa minha query, muito estranho.
Um exemplo de list() que consigo percorrer normalmente com a tag forEach:
[code]
public List acharColaboradorPeloNome(String nome) {
Criteria c = session.createCriteria(Colaborador.class);
c.add(Restrictions.like(“nome”, nome, MatchMode.ANYWHERE));
return c.list();
}[/code]
Mostro essa lista assim:
<c:forEach var="resultado" items="${resultado}">
${resultado.nome}
</c:forEach>
Até aqui tudo bem.
Com SQLQuery, que não consigo mostrar:
[code]
public List aniversariantesDoMes(int mes) {
SQLQuery query = session.createSQLQuery(“SELECT * FROM catalogo.colaborador WHERE EXTRACT(MONTH FROM data_nascimento) =” + mes);
query.setResultTransformer(Transformers.TO_LIST);
return query.list();
}[/code]
Quando vou mostrar na tela assim:
<c:forEach var="aniversariantes" items="${aniversariantes}">
<tr>
<td align="center">
<c:out value="${aniversariantes.nome}"></c:out><br />
</td>
</tr>
</c:forEach>
Da o seguinte erro:
[quote]An exception occurred processing JSP page /pesquisas/aniversariantes.jsp at line 38
35: <c:forEach var=“aniversariantes” items="${aniversariantes}">
36:
37:
38: <c:out value="${aniversariantes.nome}"></c:out>
[/quote]
Se eu não tentar acessar atributo nenhum e deixar só ${anioversariantes}, para de dar erro, mas mostra todos os atributos juntos da minha lista, ficando assim:
[quote][22, jefferson, 1988-05-19, , , null, , , , , , , , 25, (22) 2222-2222, , , , , , , , null, , , , , null, 1, , null, Ativo, null, 20, null]
[/quote]
E quero listar apenas jefferson.
Desde já agradeço.