Gostaria de saber qual diferença prática e conceitos nas seguintes utilizações:
1º Caso
public class Programa{
private static EntityManager em3;
public static void main(String[] args){
EntityManagerFactory factory3 = Persistence.createEntityManagerFactory("pu3");
em3 = factory3.createEntityManager();
Objeto objeto = new Objeto().setEM(em3).executa();
}
}
public class Objeto{
private static EntityManager em3;
public Objeto setEm3(EntityManager em3) {
this.em3 = em3;
return this;
}
public Objeto executa(){
em3.getTransaction().begin();
//rotinas...
em3.getTransaction().commit();
return this;
}
}
e
2º Caso
public class Programa{
private static EntityManager em3;
public static void main(String[] args){
EntityManagerFactory factory3 = Persistence.createEntityManagerFactory("pu3");
em3 = factory3.createEntityManager();
Objeto objeto = new Objeto().executa();
}
public static final EntityManager getEM(){
return em3;
}
}
public class Objeto{
public Objeto executa(){
Programa.getEM().getTransaction().begin();
//rotinas...
Programa.getEM().getTransaction().commit();
}
}
Estou pensando na utilização do segundo Caso, pois será necessário a utilização do EntityManager em vários outros objetos, então ao invés de sempre setar no objeto a ser utilizado, passaria somente a buscar o existente e não setar um atributo novo para cada objeto que vá utilizar o EntityManager.
Porém que tipo de problemas poderia ter.
Obrigado pela atenção.