![JAR search and dependency download from the Maven repository](/logo.png)
es.claro.persistence.ScopedEntityManagerFactory Maven / Gradle / Ivy
package es.claro.persistence;
import java.util.Map;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
/**
*
* @author puche
*/
public class ScopedEntityManagerFactory extends EntityManagerFactoryProxy implements LazyCloseListener {
private final ThreadLocal threadLocal;
public ScopedEntityManagerFactory(final EntityManagerFactory emf) {
super(emf);
threadLocal = new ThreadLocal();
}
@Override
public EntityManager createEntityManager(final Map map) {
EntityManagerProxy em = threadLocal.get();
if (em == null) {
em = new LazyCloseEntityManager(super.createEntityManager(map));
createEntityManager(em);
}
return em;
}
@Override
public EntityManager createEntityManager() {
EntityManagerProxy em = threadLocal.get();
if (em == null) {
em = new LazyCloseEntityManager(super.createEntityManager());
createEntityManager(em);
}
return em;
}
protected void createEntityManager(final EntityManagerProxy em) {
threadLocal.set(em);
((LazyCloseEntityManager) em).setLazyCloseListener(this);
}
protected EntityManagerProxy getEntityManager() {
return threadLocal.get();
}
public void lazilyClosed() {
threadLocal.set(null);
}
public void setPersistenceUnitName(final String value) {
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy