Pessoal, tô com o seguinte problema:
No meu sistema, tenho as seguintes Classes: País, Estado e Cidade.
[code]public class Pais {
private Integer paisId;
private String nome;
}
public class Estado {
private Integer estadoId;
private Pais pais
private String nome;
}
public class Cidade{
private Integer cidadeId;
private Estado estado
private String nome;
}[/code]
Na aplicação Cidade, preciso fazer um filtro selecionando país e carregando os estados daquele país. Fiz o filtro dessa maneira:
<ui:define name="label">Pais</ui:define>
<h:selectOneMenu value="#{cidade.estado.pais}"
id="pais" label="Pais" required="true">
<s:selectItems var="_pais"
value="#{paises}"
label="#{_pais.nome}"
noSelectionLabel="Selecione" />
<s:convertEntity />
<a:support event="onchange"
reRender="carregarEstados"
ajaxSingle="true"
action="#{filterAction.carregarEstados(cidade.estado.pais.paisId)}" />
</h:selectOneMenu>
O problema é que país não é um atributo de cidade, aí gera o seguinte erro: model validation failed:/cidade/cidade_edit.xhtml @23,49 value="#{cidade.estado.pais}": Target Unreachable, ‘estado’ returned null on ‘org.domain.infralogjava.entity.Cidade’
Até posso criar um atributo país em cidade, e não-persistir esse atributo, mas aí complica meu método Edit, pois o value ficaria value="#{cidade.pais}" e como país não é persistido, não tras nada do banco e a combo vem vazia.
Alguem tem alguma solução pra isso?
Sei que deve ser algo bem simples, desculpem minha falta de conhecimento.