Galera, estou com o seguinte problema, tenho dois p:selectOneMenu, o primeiro recebe o estado e o segundo a cidade.
Porem quando faço um find no cliente ao carregar os dados para a view o p:selectOneMenu da cidade não é carregado com o valor, porém o p:selectOneMenu de estado é carregado normalmente:
Minha view
<p:outputLabel value="Estado" for="Estado"/>
<p:selectOneMenu id="Estado"
value="#{doadorController.estado}"
converter="#{estadoConverter}">
<f:selectItem itemLabel="Selecione ..." noSelectionOption="true"/>
<f:selectItems value="#{doadorController.estados}"
var="estado"
itemLabel="#{estado.nome}"
itemValue="#{estado}"/>
<p:ajax update="Cidade, mgs" event="change" listener="#{doadorController.findEstadoById()}"/>
</p:selectOneMenu>
<p:outputLabel value="Cidade" for="Cidade"/>
<p:selectOneMenu value="#{doadorController.cidade}" id="Cidade"
converter="#{cidadeConverter}">
<f:selectItem itemLabel="Selecione ..." noSelectionOption="true"/>
<f:selectItems value="#{doadorController.cidades}"
var="cidade"
itemLabel="#{cidade.nome}"
itemValue="#{cidade}"/>
<p:ajax update="Cidade, mgs" event="change" listener="#{doadorController.findCidadeById()}"/>
</p:selectOneMenu>
Meu controller
public void findByUsuario(){
try {
doador = this.doadorService.findById(getUsuarioSessao().getDoador().getId());
//doador = this.doadorService.findById((long) 1);
endereco = this.enderecoService.findByCliente(doador.getId());
getEstados();
cidades = this.cidadeService.findByEstado(endereco.getCidade().getEstado());
this.cidade = this.cidadeService.findById(endereco.getCidade());
this.estado = cidade.getEstado();
} catch (Exception e) {
System.err.println("Erro ao doadorController.findByUsuario: " + e.getMessage());
jsfMessageUtil.sendErrorMessageToUser("Erro ao Buscar Doador");
}
}