blob: 0af674df01c3c00a0fdcb3203a6a6eb0dfd95d8a [file] [log] [blame]
/*
*******************************************************************************
* Copyright (c) 2018 Contributors to the Eclipse Foundation
*
* See the NOTICE file(s) distributed with this work for additional
* information regarding copyright ownership.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* SPDX-License-Identifier: EPL-2.0
*******************************************************************************
*/
package org.eclipse.openk.db.dao;
import java.util.List;
import java.util.Map;
import javax.persistence.EntityGraph;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.FlushModeType;
import javax.persistence.LockModeType;
import javax.persistence.Query;
import javax.persistence.StoredProcedureQuery;
import javax.persistence.TypedQuery;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaDelete;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.CriteriaUpdate;
import javax.persistence.metamodel.Metamodel;
public class AutoCloseEntityManager implements EntityManager, AutoCloseable {
private EntityManager em;
public AutoCloseEntityManager(EntityManager entityManager) {
em = entityManager;
}
@Override
public void persist(Object o) {
em.persist(o);
}
@Override
public <T> T merge(T t) {
return em.merge(t);
}
@Override
public void remove(Object o) {
em.remove(o);
}
@Override
public <T> T find(Class<T> aClass, Object o) {
return em.find(aClass, o);
}
@Override
public <T> T find(Class<T> aClass, Object o, Map<String, Object> map) {
return em.find(aClass, o, map);
}
@Override
public <T> T find(Class<T> aClass, Object o, LockModeType lockModeType) {
return em.find(aClass, o, lockModeType);
}
@Override
public <T> T find(Class<T> aClass, Object o, LockModeType lockModeType, Map<String, Object> map) {
return em.find(aClass, o, lockModeType, map);
}
@Override
public <T> T getReference(Class<T> aClass, Object o) {
return em.getReference(aClass, o);
}
@Override
public void flush() {
em.flush();
}
@Override
public FlushModeType getFlushMode() {
return em.getFlushMode();
}
@Override
public void setFlushMode(FlushModeType flushModeType) {
em.setFlushMode(flushModeType);
}
@Override
public void lock(Object o, LockModeType lockModeType) {
em.lock(o, lockModeType);
}
@Override
public void lock(Object o, LockModeType lockModeType, Map<String, Object> map) {
em.lock(o, lockModeType, map);
}
@Override
public void refresh(Object o) {
em.refresh(o);
}
@Override
public void refresh(Object o, Map<String, Object> map) {
em.refresh(o, map);
}
@Override
public void refresh(Object o, LockModeType lockModeType) {
em.refresh(o, lockModeType);
}
@Override
public void refresh(Object o, LockModeType lockModeType, Map<String, Object> map) {
em.refresh(o, lockModeType, map);
}
@Override
public void clear() {
em.clear();
}
@Override
public void detach(Object o) {
em.detach(o);
}
@Override
public boolean contains(Object o) {
return em.contains(o);
}
@Override
public LockModeType getLockMode(Object o) {
return em.getLockMode(o);
}
@Override
public void setProperty(String s, Object o) {
em.setProperty(s, o);
}
@Override
public Map<String, Object> getProperties() {
return em.getProperties();
}
@Override
public Query createQuery(String s) {
return em.createQuery(s);
}
@Override
public <T> TypedQuery<T> createQuery(CriteriaQuery<T> criteriaQuery) {
return em.createQuery(criteriaQuery);
}
@Override
public Query createQuery(CriteriaUpdate updateQuery) {
return em.createQuery(updateQuery);
}
@Override
public Query createQuery(CriteriaDelete deleteQuery) {
return em.createQuery(deleteQuery);
}
@Override
public <T> TypedQuery<T> createQuery(String s, Class<T> aClass) {
return em.createQuery(s, aClass);
}
@Override
public Query createNamedQuery(String s) {
return em.createNamedQuery(s);
}
@Override
public <T> TypedQuery<T> createNamedQuery(String s, Class<T> aClass) {
return em.createNamedQuery(s, aClass);
}
@Override
public Query createNativeQuery(String s) {
return em.createNativeQuery(s);
}
@Override
public Query createNativeQuery(String s, Class aClass) {
return em.createNativeQuery(s, aClass);
}
@Override
public Query createNativeQuery(String s, String s1) {
return em.createNativeQuery(s, s1);
}
@Override
public StoredProcedureQuery createNamedStoredProcedureQuery(String name) {
return em.createNamedStoredProcedureQuery(name);
}
@Override
public StoredProcedureQuery createStoredProcedureQuery(String procedureName) {
return em.createStoredProcedureQuery(procedureName);
}
@Override
public StoredProcedureQuery createStoredProcedureQuery(String procedureName, Class... resultClasses) {
return em.createStoredProcedureQuery(procedureName, resultClasses);
}
@Override
public StoredProcedureQuery createStoredProcedureQuery(String procedureName, String... resultSetMappings) {
return em.createStoredProcedureQuery(procedureName, resultSetMappings);
}
@Override
public void joinTransaction() {
em.joinTransaction();
}
@Override
public boolean isJoinedToTransaction() {
return em.isJoinedToTransaction();
}
@Override
public <T> T unwrap(Class<T> aClass) {
return em.unwrap(aClass);
}
@Override
public Object getDelegate() {
return em.getDelegate();
}
@Override
public void close() {
if (em.isOpen()) {
if (em.getTransaction().isActive()) {
em.getTransaction().rollback();
}
em.close();
}
}
@Override
public boolean isOpen() {
return em.isOpen();
}
@Override
public EntityTransaction getTransaction() {
return em.getTransaction();
}
@Override
public EntityManagerFactory getEntityManagerFactory() {
return em.getEntityManagerFactory();
}
@Override
public CriteriaBuilder getCriteriaBuilder() {
return em.getCriteriaBuilder();
}
@Override
public Metamodel getMetamodel() {
return em.getMetamodel();
}
@Override
public <T> EntityGraph<T> createEntityGraph(Class<T> rootType) {
return em.createEntityGraph(rootType);
}
@Override
public EntityGraph<?> createEntityGraph(String graphName) {
return em.createEntityGraph(graphName);
}
@Override
public EntityGraph<?> getEntityGraph(String graphName) {
return em.getEntityGraph(graphName);
}
@Override
public <T> List<EntityGraph<? super T>> getEntityGraphs(Class<T> entityClass) {
return em.getEntityGraphs(entityClass);
}
}