Boa tarde,
estou tentando definir qual a melhor prática de uso dos EntityManagers, normalmente comenta-se muito sobre o padrão OpenSessionInView, entretando acho curioso como este padrão sempre fecha o EM. Digo isso pois ao que parece esse tipo de técnica desconsidera o uso das chamadas de atributos Lazy, ou mesmo o cache de objetos (já que o EM é um objeto procurador, proxy) do EM.
Normalmente quando se aluga um servidor, com exceção dos planos mais caros, tem-se um número limitado de conexões abertas com o banco, como também, banco de dados compartilhados e etc.
Seria uma boa prática manter um EM aberto durante toda a sessão do usuário? Ou talvez compartilhar um mesmo EM com vários usuários(sessões) durante a atividade de navegação?
Eu cheguei a implementar um cache de EM’s compartilhando cada EM com um número X de sessões abertas na minha aplicação WEB, entretanto esta aplicação ainda não está rodando, por isso não tenho resultados desta abordagem. Gostaria de saber do pessoal, qual as melhores práticas que vocês estão utilizando.
Outra dúvida minha, é com relação a vantagens e desvantagens do uso do EntityManager (JPA) X Session (Hibernate).
[]’ Paulo
