/* * Copyright @ 2013 CurisTEC, S.A.S. All Rights Reserved. */ package net.curisit.securis.ioc; import jakarta.enterprise.context.RequestScoped; import jakarta.enterprise.inject.Disposes; import jakarta.enterprise.inject.Produces; import jakarta.inject.Inject; import jakarta.persistence.EntityManager; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; /** * EntityManagerProducer
* Producer for the entity manager, this is used to expose the entity manager as a CDI bean */ @RequestScoped public class EntityManagerProducer { private static final Logger LOG = LogManager.getLogger(EntityManagerProducer.class); @Inject private EntityManagerProvider emProvider; @Produces @RequestScoped public EntityManager produceEntityManager() { EntityManager em = emProvider.getEntityManager(); LOG.info("Produced EntityManager: {}", em); return em; } public void closeEntityManager(@Disposes EntityManager em) { if (em != null && em.isOpen()) { LOG.info("Closing produced EntityManager: {}", em); em.close(); } } }