Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class PersistenceFilter implements Filter
- {
- protected static final Logger log = Logger.getLogger(PersistenceFilter.class.getName());
- private EntityManagerFactory factory;
- @Override
- public void init(FilterConfig filterConfig) throws ServletException
- {
- factory = Persistence.createEntityManagerFactory("mydb");
- }
- @Override
- public void destroy()
- {
- factory.close();
- }
- @Override
- public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException
- {
- EntityManager em = factory.createEntityManager();
- ThreadLocalEntityManager.set(em);
- EntityTransaction tx = em.getTransaction();
- tx.begin();
- try
- {
- chain.doFilter(req, res);
- tx.commit();
- }
- catch (Exception e)
- {
- tx.rollback();
- }
- finally
- {
- log.info("closing EntityManager: " + EMF.entityManager());
- em.close();
- }
- }
- }
- ThreadLocalEntityManager
- {
- private static ThreadLocal<EntityManager> holder = new ThreadLocal<EntityManager>();
- private ThreadLocalEntityManager()
- {
- }
- public static EntityManager get()
- {
- return holder.get();
- }
- public static void set(EntityManager em)
- {
- holder.set(em);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement