/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.openejb.persistence; 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; import java.util.List; import java.util.Map; public class QueryLogEntityManager implements EntityManager { private final EntityManager delegate; private final String level; public QueryLogEntityManager(final EntityManager entityManager, final String level) { delegate = entityManager; this.level = level; } @Override public void persist(final Object entity) { delegate.persist(entity); } @Override public <T> T merge(final T entity) { return delegate.merge(entity); } @Override public void remove(final Object entity) { delegate.remove(entity); } @Override public <T> T find(final Class<T> entityClass, final Object primaryKey) { return delegate.find(entityClass, primaryKey); } @Override public <T> T find(final Class<T> entityClass, final Object primaryKey, final Map<String, Object> properties) { return delegate.find(entityClass, primaryKey, properties); } @Override public <T> T find(final Class<T> entityClass, final Object primaryKey, final LockModeType lockMode) { return delegate.find(entityClass, primaryKey, lockMode); } @Override public <T> T find(final Class<T> entityClass, final Object primaryKey, final LockModeType lockMode, final Map<String, Object> properties) { return delegate.find(entityClass, primaryKey, lockMode, properties); } @Override public <T> T getReference(final Class<T> entityClass, final Object primaryKey) { return delegate.getReference(entityClass, primaryKey); } @Override public void flush() { delegate.flush(); } @Override public void setFlushMode(final FlushModeType flushMode) { delegate.setFlushMode(flushMode); } @Override public FlushModeType getFlushMode() { return delegate.getFlushMode(); } @Override public void lock(final Object entity, final LockModeType lockMode) { delegate.lock(entity, lockMode); } @Override public void lock(final Object entity, final LockModeType lockMode, final Map<String, Object> properties) { delegate.lock(entity, lockMode, properties); } @Override public void refresh(final Object entity) { delegate.refresh(entity); } @Override public void refresh(final Object entity, final Map<String, Object> properties) { delegate.refresh(entity, properties); } @Override public void refresh(final Object entity, final LockModeType lockMode) { delegate.refresh(entity, lockMode); } @Override public void refresh(final Object entity, final LockModeType lockMode, final Map<String, Object> properties) { delegate.refresh(entity, lockMode, properties); } @Override public void clear() { delegate.clear(); } @Override public void detach(final Object entity) { delegate.detach(entity); } @Override public boolean contains(final Object entity) { return delegate.contains(entity); } @Override public LockModeType getLockMode(final Object entity) { return delegate.getLockMode(entity); } @Override public void setProperty(final String propertyName, final Object value) { delegate.setProperty(propertyName, value); } @Override public Map<String, Object> getProperties() { return delegate.getProperties(); } @Override public Query createQuery(final String qlString) { return delegate.createQuery(qlString); } @Override public <T> TypedQuery<T> createQuery(final CriteriaQuery<T> criteriaQuery) { return new CriteriaLogQuery(delegate.createQuery(criteriaQuery), level); } @Override public Query createQuery(final CriteriaUpdate updateQuery) { return delegate.createQuery(updateQuery); } @Override public Query createQuery(final CriteriaDelete deleteQuery) { return delegate.createQuery(deleteQuery); } @Override public <T> TypedQuery<T> createQuery(final String qlString, final Class<T> resultClass) { return delegate.createQuery(qlString, resultClass); } @Override public Query createNamedQuery(final String name) { return delegate.createNamedQuery(name); } @Override public <T> TypedQuery<T> createNamedQuery(final String name, final Class<T> resultClass) { return delegate.createNamedQuery(name, resultClass); } @Override public Query createNativeQuery(final String sqlString) { return delegate.createNativeQuery(sqlString); } @Override public Query createNativeQuery(final String sqlString, final Class resultClass) { return delegate.createNativeQuery(sqlString, resultClass); } @Override public Query createNativeQuery(final String sqlString, final String resultSetMapping) { return delegate.createNativeQuery(sqlString, resultSetMapping); } @Override public StoredProcedureQuery createNamedStoredProcedureQuery(final String name) { return delegate.createNamedStoredProcedureQuery(name); } @Override public StoredProcedureQuery createStoredProcedureQuery(final String procedureName) { return delegate.createStoredProcedureQuery(procedureName); } @Override public StoredProcedureQuery createStoredProcedureQuery(final String procedureName, final Class... resultClasses) { return delegate.createStoredProcedureQuery(procedureName, resultClasses); } @Override public StoredProcedureQuery createStoredProcedureQuery(final String procedureName, final String... resultSetMappings) { return delegate.createStoredProcedureQuery(procedureName, resultSetMappings); } @Override public void joinTransaction() { delegate.joinTransaction(); } @Override public boolean isJoinedToTransaction() { return delegate.isJoinedToTransaction(); } @Override public <T> T unwrap(final Class<T> cls) { return delegate.unwrap(cls); } @Override public Object getDelegate() { return delegate.getDelegate(); } @Override public void close() { delegate.close(); } @Override public boolean isOpen() { return delegate.isOpen(); } @Override public EntityTransaction getTransaction() { return delegate.getTransaction(); } @Override public EntityManagerFactory getEntityManagerFactory() { return delegate.getEntityManagerFactory(); } @Override public CriteriaBuilder getCriteriaBuilder() { return delegate.getCriteriaBuilder(); } @Override public Metamodel getMetamodel() { return delegate.getMetamodel(); } @Override public <T> EntityGraph<T> createEntityGraph(final Class<T> rootType) { return delegate.createEntityGraph(rootType); } @Override public EntityGraph<?> createEntityGraph(final String graphName) { return delegate.createEntityGraph(graphName); } @Override public EntityGraph<?> getEntityGraph(final String graphName) { return delegate.getEntityGraph(graphName); } @Override public <T> List<EntityGraph<? super T>> getEntityGraphs(final Class<T> entityClass) { return delegate.getEntityGraphs(entityClass); } }