Pois é pessoal. É o erro mais comum nas aplicações web.
Já tentei de tudo, coloquei Spring, Listener, OpenEntityManagerInViewFilter e mais um monte.
Revirei o google, vários outros fóruns e ninguém posta uma solução clara, objetiva e definitiva para o problema.
Tenho um projeto grande e quando notei esse erro, percebi pela modelagem do Banco de Dados que esse erro poderá acontecer em grande parte do meu sistema.
Não sei mais o que posso fazer pra solucionar isso.
Já sei que o problema é devido a conexão com o banco ser fechada antes de atribuir os valores ao meu objeto (coisa do Hibernate e JPA), porém, não posso colocar os atributos da minha classe como EAGER, devido ao consumo de memória.
A aplicação baseia-se em RichFaces, Ajax e Hibernate com JPA. Ouvi falar que o OpenEntityManagerInViewFilter não funciona para requisições Ajax, ou seja, talvez a causa do problema esteja aí, mas não creio que todos os desenvolvedores do mundo vão ter de deixar de usar Ajax por causa de um erro desses.
Acontece que eu tenho um objeto Departamento que possui vários Projetos. Quando tento alterar um objeto Projeto ocorre o erro de “No Session”.
No meu bean Projeto tenho o seguinte:
@JoinColumn(name = "fk_departamento", referencedColumnName = "id_departamento", nullable = false)
@ManyToOne(optional = false, fetch = FetchType.LAZY)
private DepartamentoBean fkDepartamento;
E no meu bean Departamento:
@OneToMany(mappedBy = "fkDepartamento", fetch = FetchType.LAZY)
private List<ProjetoBean> projetos;
Se alguém conseguiu solucionar esse problema, ficarei grato por qualquer ajuda.

