Usando EJB, ao injetar um entitymanager via @persistenceContext o container fica responsavel por criar o EntityManagerFactory e a cada requisicao e criado apenas um entityManager ( se por acaso uma camada chamar outra camada que tambem tenha um entityManager injetado, eles serao na verdade um proxy para o mesmo entitymanager)
Como isso fica se tratando do CDI? tem alguma perda de performance ao se instanciar o entitymanagerFactory usando new diretamente? o entitymanagertambem é gerado como proxy?
VIDE:
private static EntityManagerFactory emf = Persistence
.createEntityManagerFactory("livraria");
@Produces // produtor
public EntityManager getEntityManager() {
return emf.createEntityManager();
}
public void close(EntityManager em) {
em.close();
}
obrigado