@Override public void requestDestroyed(ServletRequestEvent sre) { ThreadLocalEntityManager.close(); }
public static EntityManager getEm() { EntityManager manager = THREAD_CONTEXT.get(); if (manager == null) { throw JPA202_MISSING_THREAD_EM(); } return manager; }
@Override public void contextInitialized(ServletContextEvent event) { ServletContext sc = event.getServletContext(); String unitName = sc.getInitParameter(PERSISTENCE_UNIT_NAME_PARAM); EntityManagerFactory factory = EntityManagerFactoryCreator.createFactory(unitName); event.getServletContext().setAttribute(PERSISTENCE_UNIT_NAME_PARAM, factory); }
public static void begin() { EntityManager manager = getEm(); if (manager == null) { LOG.warn("Cannot begin tx, no EntityManager was found in thread local."); return; } if (manager.getTransaction().isActive()) { LOG.warn("Cannot begin tx, transaction already active."); } manager.getTransaction().begin(); }
@Override public void requestInitialized(ServletRequestEvent event) { EntityManagerFactory factory = (EntityManagerFactory) event.getServletContext() .getAttribute(ServletEntityManagerLifecycle.PERSISTENCE_UNIT_NAME_PARAM); ThreadLocalEntityManager.createEm(factory); }
public static final EntityManagerFactory createFactory(String persistenceUnitName) { Properties p = new Properties(); String filePath = SystemProperties.createDefault().get(JPA_PROPERTIES_FILE); if (filePath == null || "".equals(filePath)) { throw JPA201_PROP_FILEPATH_MISSING(JPA_PROPERTIES_FILE); } FileInputStream in = null; try { in = new FileInputStream(new File(filePath)); p.load(in); } catch (IOException e) { throw new RuntimeException(e); } finally { FileUtils.close(in); } return Persistence.createEntityManagerFactory(persistenceUnitName, p); }