Olá povo
Sei que este tema já foi abordado em outros tópicos deste fórum. Ocorre que as soluções postadas até agora não foram satisfatórias tampouco elegantes. Por este motivo estou novamente levantando a questão.
Gostaria de saber como evitar de modo elegante e LazyInitializationException usando ejb3 (JPA) + Stateless Session Beans de fachada. Antes que alguém tente me descrever o problema, saiba que estou perfeitamente ciente dos motivos que fazem o Hibernate (minha opção de JPA) levantar esta exceção. Ocorre que gostaria de dar uma solução elegante para o problema. O OpenSessionInView não é uma opção porque meus objetos Entity serão acessados por uma aplicalção Web (JSF) no mesmo container mas também de fora do container por uma aplicação desktop.
Além disso, arquiteturalmente OpenSessionInView não é exatamente uma solução elegante. É sim, na minha opinião, apenas um contorno pra um problema complicado.
Também não pretendo apenas modificar o mapeamento para Eager por questões óbvias.
Sei que há outras possibilidades como, por exemplo, usar statefull sesion beans, mas isto mudaria radicalmente a arquitetura de nossas aplicações, de modo que também não é uma opção. Há a necessidade de se indicar o método que encerra a sessão. Como fazer isso de modo simples e com pouco ou nenhum impacto no restante da aplicação?
Não conheço o JBoss Seam, embora saiba que ele implementa o conceito de conversação. Gostaria de saber, portanto, se alguém já usou o Seam integrado às suas aplicações e se conseguiu resultado efetivo contra a LazyInitializationException .
Se alguém tiver uma boa saída, elegante principalmente, poste aqui. Penso que será de grande utilidade termos uma saída esperta e definitiva para um problema tão recorrente.
Abraços a todos