29 lines
846 B
Java
29 lines
846 B
Java
package baeldung.data;
|
|
|
|
import javax.enterprise.context.ApplicationScoped;
|
|
import javax.enterprise.context.RequestScoped;
|
|
import javax.enterprise.inject.Default;
|
|
import javax.enterprise.inject.Disposes;
|
|
import javax.enterprise.inject.Produces;
|
|
import javax.persistence.EntityManager;
|
|
import javax.persistence.EntityManagerFactory;
|
|
import javax.persistence.PersistenceUnit;
|
|
|
|
@ApplicationScoped
|
|
public class EntityManagerProducer {
|
|
@PersistenceUnit(unitName = "primary")
|
|
private EntityManagerFactory entityManagerFactory;
|
|
|
|
@Produces
|
|
@Default
|
|
@RequestScoped
|
|
public EntityManager create() {
|
|
return this.entityManagerFactory.createEntityManager();
|
|
}
|
|
|
|
public void dispose(@Disposes @Default EntityManager entityManager) {
|
|
if (entityManager.isOpen()) {
|
|
entityManager.close();
|
|
}
|
|
}
|
|
} |