package abaque.traitement;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import org.apache.log4j.Logger;
public class EntityManagerUtil {
private static final Logger log = Logger
.getLogger(SiteServlet.class);
private static EntityManagerFactory emf;
public static final ThreadLocal<EntityManager> entitymanager = new ThreadLocal<EntityManager>();
public static EntityManagerFactory getEntityManagerFactory(){
if (emf == null){
log.info("EntityManagerUtil.getEntityManagerFactory : nouveau EntityManagerFactory");
// Create the EntityManagerFactory
// Attention : il s'agit du nom de la PersistenceUnit du fichier persistence.xml qui doit etre utilise
emf = Persistence.createEntityManagerFactory(Constantes.PERSISTENCE_NAME);
}
return emf;
}
public static EntityManager getEntityManager(){
EntityManager em = entitymanager.get();
//Create a new EntityManager
if (em == null){
em = emf.createEntityManager();
entitymanager.set(em);
}
return em;
}
/**
* Ferme l'entityManager afin d'assurer l'isolation.
*/
public static void closeEntityManager() {
EntityManager em = entitymanager.get();
entitymanager.set(null);
if (em != null) em.close();
}
}
Partager