| /* |
| ******************************************************************************* |
| * 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); |
| } |
| } |