No padrão OpenSessionInView, foi visto que se abre uma conexão por cliente conectado. Quando não se está usando esse padrão, como é feito o gerenciamento de conexões?
No padrão OpenSessionInView, foi visto que se abre uma conexão por cliente conectado. Quando não se está usando esse padrão, como é feito o gerenciamento de conexões?
Bem, na verdade o que rola é seguinte. No Padrão OpenSessionInView, não é aberta uma conexão por cliente, mas sim, uma conexão por request, e a mesma é fechada ao final da requisição.
O "gerenciamento de conexões" não é feito nesse momento. O gerenciamento das conexões nesse curso é realizado através de um Pool de conexões, esse sim é responsável por otimizar o número de conexões que serão abertas.
Outra estratégia(padrão) de gerenciamento de conexões é o Singleton, que cria um conexão única para todos os clientes.
OK, mas quando não se está usando o OpenSessionInView, em que momento são criadas e fechadas a s conexões? É aberta quando eu instancio uma EntityManager e é fechada quando o EntityManager é fechado, correto?
Correto.