Olá, tudo bem?
No post de hoje veremos como tratar o famoso erro LazyInitializationException. Vamos ver 4 modos de evitar que esse erro aconteça, a vantagem e a desvantagem de cada abordagem e ao final, veremos comentários sobre o modo de como o EclipseLink trata essa situação.
Para simular e tratar o LazyInitializationException iremos utilizar um projeto EJB 3 com JSF 2.
O que veremos no post de hoje:
- Página 3: Entenda o problema, por que o erro LazyInitializationException acontece?
- Página 4: Carregar coleção por anotação
- Página 5: Carregar coleção por Open Session in View (Transaction View)
- Página 6: Carregar coleção por Stateful EJB com PersistenceContextType.EXTENDED
- Página 7: Carregar coleção por Join Query
- Página 8: Considerações sobre EclipseLink
Ao final do post você irá encontrar o código para download.
Atenção: Para esse post foi utilizado um código bem simples, e que não utiliza padrões de projeto. O foco desse post é destacar as soluções para o LazyInitializationException.
Apesar do exemplo que é utilizado nesse post ter sido criado com JSF + EJB, as soluções aqui se aplicam para o tratamento em qualquer ferramenta web. Tanto JSF, JSP com Servlets, JSP com Struts, JSP com VRaptor, etc.
O único exemplo que não é aplicável para a tecnologia JSE (em geral definido como Desktop) é a solução do EJB.

