Porque não instanciar o EntityManager dentro do Dao ao invés de repetir codito e ter que passa-lo no construtor de cada classe que eu utilizar o Dao?
Porque não instanciar o EntityManager dentro do Dao ao invés de repetir codito e ter que passa-lo no construtor de cada classe que eu utilizar o Dao?
alguem ai?
Oi Giulia, tem sim! A demora é indesculpável, mas agora que estamos aqui, vamos tentar resolver.
Se você cria o objeto do EntityManager dentro do seu Dao, o próprio Dao vira, automaticamente, o responsável pelo fechamento daquele recurso. Essa é uma lei de recursos, se você abriu, você é quem precisa fechar. Além disso, se você usar vários daos num para uma regra de negócio, você vai precisar abrir e fechar várias conexões com o banco e també vai perder a chance de realizar todas as operações dentro da mesma transação.
Na minha visão, estes motivos indicam que o Dao não deveria ter essa responsabilidade.