package com.sap.hana.cloud.samples.benefits.persistence.manager;
import javax.persistence.EntityManager;
public class EntityManagerProvider {
private static final ThreadLocal<EntityManager> ENTITY_MANAGER = new ThreadLocal<>();
private static EntityManagerProvider instance;
public static synchronized EntityManagerProvider getInstance() {
if (instance == null) {
instance = new EntityManagerProvider();
}
return instance;
}
private EntityManagerProvider() {
}
public void initEntityManagerProvider() {
set(EntityManagerFactoryProvider.getInstance().getEntityManagerFactory().createEntityManager());
}
public EntityManager get() {
return ENTITY_MANAGER.get();
}
public void closeEntityManager() {
final EntityManager em = get();
if (em != null) {
em.close();
}
remove();
}
private static void set(EntityManager entityManager) {
ENTITY_MANAGER.set(entityManager);
}
private static void remove() {
ENTITY_MANAGER.remove();
}
}