Olá pessoal.
Sobre o erro org.hibernate.HibernateException: Illegal attempt to associate a collection with two open sessions
antes que digam: “Procure no google ou no forum antes de postar”… Eu procurei!!
Sei que é um erro muito comum e tem várias formas de se resolver. De fato eu resolvi esse erro que estava acontecendo.
Mas não encontrei em nenhum lugar uma explicação de o por que isso acontece.
Gostaria de entender o que o Hibernate faz pra isso acontecer.
Vou dar uma explicada no meu contexto onde aconteceu o erro e quem puder me explicar o motivo, eu agradeço:
Tenho uma entidade Usuario associada a entidade Telefone. Um usuário tem vários telefones e o telefone só é de um usuário.
Na entidade de usuário está mapeado uma lista de telefones como LAZY e Cascade.ALL.
Na tela de pesquisar Usuarios. Ao clicar para editar um usuário da lista de pesquisa, o sistema redireciona para a tela de edição.
Neste momento o hibernate por traz faz um select na entidade de Telefone, pois na tela de edição tem uma lista de telefones.
E ao salvar o registo(no caso editar), ele acontece o erro.
Estou usando o Seam e inicio uma conversação ao entrar na pesquisa e a mantenho ate o momento onde o usuário salva(edita) o registro.
Agradeço.