Buenas,
Yo creo que es correcto, pero hay que tener en cuenta que la creacion de la factoria es bastante costosa, por lo que lo mejor seria abrir un factory, despues hacer todas las consultas que tengas que hacer usando entitymanagers y cerrar al final el factory antes de devolver la informacion al usuario.
Si lo quieres mejorar, la mejor manera de hacerlo en un Tomcat seria usar un listener que controle la creacion y cierre del factory como indican aqui, por ejemplo:
http://stackoverflow.com/questions/7...managerfactory
Código Java:
Ver original@WebListener
public class EMF implements ServletContextListener {
private static EntityManagerFactory emf;
@Override
public void contextInitialized(ServletContextEvent event) {
emf = Persistence.createEntityManagerFactory("PersistenceUnit");
}
@Override
public void contextDestroyed(ServletContextEvent event) {
emf.close();
}
public static EntityManager createEntityManager() {
if (emf == null) {
}
return emf.createEntityManager();
}
}
Y despues siempre que necesites hacer una consulta:
Código Java:
Ver originalEntityManager em = EMF.createEntityManager();
// ...
Un saludo