Salve Pessoal.
Tenho uma aplicação Web, utilizando JSF, EJB e JPA.
A cadama Web acessa os dados, através da camada de negócios(EJB) e esse por sua vez acessa o DAO.
Hoje estou trabalhando com Session-Per-Operation, ou seja a sessão é aberta e fechada dentro do contexto da chamada de um método do EJB.
O Open-Session In View me pareceu ser mais interessante, em termos de performance, pois a sessão fica aberta, e as propriedades são consultadas conforme demanda de uso da mesma.
Porém nunca vi, Open Session In View com EJB.
Não sei, se seria correto, abrir a sessão dentro do JSF, e passá-la como parâmetro na chamada de um método EJB.
Alguns já me disseram, que eu estaria misturando as camadas.
Queria saber melhor. Como vcs lidam com essa situação?
Com ORMs que possuem vários relacionamentos. Trazem todo mundo de uma só vez(EAGER) ou deixam tudo como LAZY e criam vários métodos(EJB) responsáveis de trazer cada relacionamento sob demanda?
Qual seria a melhor e mais perfomática forma de se trabalhar com JSF, JPA e EJB, pensando na recuperação dos dados?
Abraço.