Problemas com HashSet e expressões El

4 respostas
SanjuanRJ

Olá amigos, eu estou com o seguinte poblema. Estou tentando usar uma dataList do richfaces e passar para ele um HashSet para que ele navegue pela minha coleção. Porém recebo esse erro:

Caused by: javax.el.PropertyNotFoundException: /paginas/clienteCadastro.xhtml @464,96 value="#{telefone.tipoTelefone.nome}":
Property ‘tipoTelefone’ is not found on type: java.util.HashSet

Gostaria de saber se alguém tem alguma solução.

Obrigado.

Obs: O HashSet é para eu já conseguir setar as minhas propriedades direto no banco através do jpa do ejb.

Caso tenha sido obscuro posso tentar ser mais claro.

Conto com a ajuda de vocês.

4 Respostas

smarcelo_br

Acabei de ter este mesmo problema e consegui resolvê-lo.

Seguindo uma dica de um colega de trabalho, troquei o tipo ‘Set’ e ‘HashSet’ para ‘List’ e ‘ArrayList’ na entidade anotada por JPA. Aparentemente o rich:dataTable não funciona bem com HashSet.

J

E se quiser ter um dataModel sem valores duplicados?

Kanin_Dragon

Posta seu código.

O atributo “tipoTelefone” foi encapsulado (get/set) ?

smarcelo_br

Quando dei a resposta acima, eu estava num curso. Não tenho mais o código-fonte. Eu nunca mais trabalhei com isso e não lembro mais como usa.

O que eu posso agora é dar a seguinte referência:

http://community.jboss.org/message/31027

Lá confirma que o datatable não aceita HashSet e dá uma sugestão para convertê-lo para list:

Set<String> entidadeTipoSet = ... ... List<String> entidadeTipoList = new ArrayList<String>( entidadeTipoSet );

Talvez dê para implementar um conversor de tipo (Set para List) apenas para a apresentação. Internamente, mantenha o tipo HashSet para detectar e evitar valores duplicatos. Não sei se o que eu disse faz sentido para o seu caso.

Criado 13 de junho de 2008
Ultima resposta 11 de fev. de 2011
Respostas 4
Participantes 4