Hibernate - Illegal attempt to associate a collection with two open sessions

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.

Cara, esse erro é comum para que abre muitas sessoes e não as fecha

por Ex.:

Busco um objeto na base (Pessoa) com a sessão 00000001

tento inserir uma nota (NotaFiscal) com a sessão 00000002

e meu objeto declarei que é Fetch = Lazy

ou seja preciso da mesma sessao ou declaro minha persistencia Fetch Eagle


Comigo resolvo assim se não resolver esclareça sua duvida

posso não ter entendido.

Eae will_guitar_admfar
Cara, coloca um exemplo de como você resolveu o seu problema!
Tanho o mesmo agora --> http://www.guj.com.br/java/259089-erro-de-sessao-no-hibernate

Se puder ajudar eu agradeço!