Amigos,
Estou com o seguinte problema.
Tenho na minha aplicação um cadastro de usuarios.
Um usuario possui uma lista de irmaos, que também é uma lista de usuarios. Algo do tipo:
Usuario user = new Usuario();
usuario.getListaIrmaos();
O que está acontecendo é o seguinte… Em tempo de execução eu insiro novos irmaos na lista de irmaos do meu usuario. Está funcionando direito, pois aparece o registro novo no banco de dados. Porem, quando acesso as propriedades do usuario principal novamente, o novo irmao nao aparece na lista de irmaos.
Eu preciso parar a aplicação, entrar nela novamente para que o registro apareça.
Parece que o hibernate está guardando o usuario em cache em vez de busca-lo do banco novamente. Será que é isso mesmo? Como faço pra resolver?
Função que monta os dados do usuario:
public String prepararAlterar(){
Long id = Long.parseLong(this.idUsuario);
usuario = Progenes.obtemUsuario(id);
if(usuario.getSexo().equals("M")){
this.opcaoSexo = "Masculino";
}else{
if(usuario.getSexo().equals("F"))
this.opcaoSexo = "Feminino";
}
if(usuario.isStVivo() == true){
opcaoVivoOuMorto = "Sim";
}else{
opcaoVivoOuMorto = "Não";
}
listaDeIrmaos = usuario.getListaDeIrmaos();
listaDeFilhos = usuario.getListaDeFilhos();
listaDeConjuges = usuario.getListaDeConjuge();
int indice = 0;
for (Enfermidade temp : listaDeEnfermidades) {
for (Enfermidade temp1 : usuario.getListaDeEnfermidades()) {
if(temp.equals(temp1)){
if(indice == 0) this.enf0 = true;
if(indice == 1) this.enf1 = true;
if(indice == 2) this.enf2 = true;
if(indice == 3) this.enf3 = true;
}
}
indice++;
}
return OK;
}
Obrigado!