Eu tenho uma aplicação que possui JSF + EJB + JPA(hibernate) na parte arquitetural.
Em determinado ponto do sistema, eu tenho um objeto que tem várias listas.
Quando eu vou dar um view nesse objeto inteiro na tela, eu invoco um método que captura esse objeto completo. Para por exemplo, montar uma tela de visualização.
No entanto, eu tenho um serviço que eu exponho via Jax-RS, e nesse serviço eu componho somente as informação principais do objeto, sem capturar essas listas que o compõe.
Meu problema:
Após a captura pelo hibernate, finalizado o service (EJB) dentro do meu endpoint rest quando ele tenta montar o JSON ele acaba invocando essas listas e toma um LazyInicializationException. Se eu der um inspect no Objeto antes dele converter a lista fica com proxy aberto do hibernate ("com.sun.jdi.InvocationException occurred invoking method.").
Nesses casos eu tenho que setar null na mão. Em diversos pontos da aplicação eu tenho que fazer isso. Até mesmo numa listagem desse objeto no JSF.
Ele tenta pegar essas listas e o proxy vê que o entitymanger está fechado e devolve essa exceção.
Mas eu queria simplesmente que esse objeto estivesse NULL.
Minhas querys são planejadas e isso tem me dado alguns transtornos.
Já procurei em vários lugares e não consigo achar essa solução.
Alguma luz?