EntityManagerProducer.java 922 Bytes
package org.legrog.configuration;

import javax.enterprise.context.RequestScoped;
import javax.enterprise.inject.Disposes;
import javax.enterprise.inject.Produces;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

/**
 * JPA configuration class, used by all classes extending JpaRepository
 *
 * No difference made between Integration and Production yet,
 * as there is only one PU in the environnement at a given moment
 */
//@Exclude(ifProjectStage = ProjectStage.IntegrationTest.class)
public class EntityManagerProducer {

    /**
     * Injectable interface for persistence handling
     */
    @Produces
    @RequestScoped
    @PersistenceContext(unitName = "Grog-DB")
    public EntityManager entityManager;


    public void closeEntityManager(@Disposes EntityManager entityManager) {
        if (entityManager.isOpen()) {
            entityManager.close();
        }

    }

}