Bom dia a todos, estou na dúvida sobre o design do meu DAO, meu problema era a criação do EntityManager, optei por injetar no construtor do DAO:
public VendaPorDiaDao(EntityManager entityManager) {
this.entityManager = entityManager;
}
E pra não ter q instanciar o EntityManager no meu construtor criei uma classe que faz isso:
public class CriaEntityManager {
private static EntityManager entityManager;
public static EntityManager getEntityManager(){
EntityManagerFactory factory = Persistence.createEntityManagerFactory("PersistenceUnitFabio");
if(entityManager == null){
entityManager = factory.createEntityManager();
}
return entityManager;
}
}
Dessa forma eu uso assim:
vDao = new VendaPorDiaDao(CriaEntityManager.getEntityManager());
O que vcs acham desse design? alguma sugestão de melhoria?
PS: Sou novato em design de software, por isso me desculpem se o código está muito “bizarro”, mas não vejo outra opção ser não ir errando pra conseguir fazer certo algum dia.