protected void detachNonTxInvocation(EntityManager underlyingEntityManager) { if (!this.isExtendedPersistenceContext() && !this.isInTx() && !deferEntityDetachUntilClose()) { underlyingEntityManager.clear(); } }
public <T> T find(Class<T> entityClass, Object primaryKey, LockModeType lockMode, Map<String, Object> properties) { long start = 0; if (isTraceEnabled) start = System.currentTimeMillis(); try { final EntityManager underlyingEntityManager = getEntityManager(); T result = underlyingEntityManager.find(entityClass, primaryKey, lockMode, properties); detachNonTxInvocation(underlyingEntityManager); return result; } finally { if (isTraceEnabled) { long elapsed = System.currentTimeMillis() - start; ROOT_LOGGER.tracef("find entityClass '%s', lockMode '%s' took %dms", entityClass.getName(), getLockModeAsString(lockMode), elapsed); } } }
public Query createNativeQuery(String sqlString, String resultSetMapping) { long start = 0; if (isTraceEnabled) start = System.currentTimeMillis(); try { // invoke underlying entity manager method and if not running in a tx // return a Query wrapper around the result. EntityManager entityManager = getEntityManager(); return detachQueryNonTxInvocation(entityManager, entityManager.createNativeQuery(sqlString, resultSetMapping)); } finally { if (isTraceEnabled) { long elapsed = System.currentTimeMillis() - start; ROOT_LOGGER.tracef("createNativeQuery took %dms", elapsed); } } }
private void transactionIsRequired() { if (!this.isExtendedPersistenceContext() && !this.isInTx()) { throw JpaLogger.ROOT_LOGGER.transactionRequired(); } }
public void persist(Object entity) { long start = 0; if (isTraceEnabled) start = System.currentTimeMillis(); try { transactionIsRequired(); getEntityManager().persist(entity); } finally { if (isTraceEnabled) { long elapsed = System.currentTimeMillis() - start; ROOT_LOGGER.tracef("persist entityClass '%s' took %dms", entity.getClass().getName(), elapsed); } } }
public void refresh(Object entity, LockModeType lockMode) { long start = 0; if (isTraceEnabled) start = System.currentTimeMillis(); try { transactionIsRequired(); getEntityManager().refresh(entity, lockMode); } finally { if (isTraceEnabled) { long elapsed = System.currentTimeMillis() - start; ROOT_LOGGER.tracef("refresh entityClass '%s', lockMode '%s' took %dms", entity.getClass().getName(), getLockModeAsString(lockMode), elapsed); } } }
public void clear() { long start = 0; if (isTraceEnabled) start = System.currentTimeMillis(); try { getEntityManager().clear(); } finally { if (isTraceEnabled) { long elapsed = System.currentTimeMillis() - start; ROOT_LOGGER.tracef("clear took %dms", elapsed); } } }
public StoredProcedureQuery createStoredProcedureQuery(String procedureName, String... resultSetMappings) { long start = 0; if (isTraceEnabled) start = System.currentTimeMillis(); try { EntityManager entityManager = getEntityManager(); return detachStoredProcedureQueryNonTxInvocation(entityManager, entityManager.createStoredProcedureQuery(procedureName, resultSetMappings)); } finally { if (isTraceEnabled) { long elapsed = System.currentTimeMillis() - start; ROOT_LOGGER.tracef("createStoredProcedureQuery %s, resultSetMappings... took %dms", procedureName, elapsed); } } }
public void lock(Object entity, LockModeType lockMode, Map<String, Object> properties) { long start = 0; if (isTraceEnabled) start = System.currentTimeMillis(); try { getEntityManager().lock(entity, lockMode, properties); } finally { if (isTraceEnabled) { long elapsed = System.currentTimeMillis() - start; ROOT_LOGGER.tracef("lock entityClass '%s', lockMode '%s' took %dms", entity.getClass().getName(), getLockModeAsString(lockMode), elapsed); } } }
public <T> TypedQuery<T> createNamedQuery(String name, Class<T> resultClass) { long start = 0; if (isTraceEnabled) start = System.currentTimeMillis(); try { // invoke underlying entity manager method and if not running in a tx // return a Query wrapper around the result. EntityManager entityManager = getEntityManager(); return detachTypedQueryNonTxInvocation(entityManager,entityManager.createNamedQuery(name, resultClass)); } finally { if (isTraceEnabled) { long elapsed = System.currentTimeMillis() - start; ROOT_LOGGER.tracef("createNamedQuery name '%s', resultClass '%s' took %dms", name, resultClass.getName(), elapsed); } } }
public <T> T find(Class<T> entityClass, Object primaryKey) { long start = 0; if (isTraceEnabled) start = System.currentTimeMillis(); try { final EntityManager underlyingEntityManager = getEntityManager(); T result = getEntityManager().find(entityClass, primaryKey); detachNonTxInvocation(underlyingEntityManager); return result; } finally { if (isTraceEnabled) { long elapsed = System.currentTimeMillis() - start; ROOT_LOGGER.tracef("find entityClass '%s' took %dms", entityClass.getName(), elapsed); } } }
public <T> T merge(T entity) { long start = 0; if (isTraceEnabled) start = System.currentTimeMillis(); try { transactionIsRequired(); return getEntityManager().merge(entity); } finally { if (isTraceEnabled) { long elapsed = System.currentTimeMillis() - start; ROOT_LOGGER.tracef("merge entityClass '%s' took %dms", entity.getClass().getName(), elapsed); } } }
public void refresh(Object entity, LockModeType lockMode, Map<String, Object> properties) { long start = 0; if (isTraceEnabled) start = System.currentTimeMillis(); try { transactionIsRequired(); getEntityManager().refresh(entity, lockMode, properties); } finally { if (isTraceEnabled) { long elapsed = System.currentTimeMillis() - start; ROOT_LOGGER.tracef("refresh entityClass '%s', lockMode '%s' took %dms", entity.getClass().getName(), getLockModeAsString(lockMode), elapsed); } } }
public Query createQuery(CriteriaUpdate criteriaUpdate) { long start = 0; if (isTraceEnabled) start = System.currentTimeMillis(); try { return getEntityManager().createQuery(criteriaUpdate); } finally { if (isTraceEnabled) { long elapsed = System.currentTimeMillis() - start; ROOT_LOGGER.tracef("createQuery(CriteriaUpdate) took %dms", elapsed); } } }
protected <T> TypedQuery<T> detachTypedQueryNonTxInvocation(EntityManager underlyingEntityManager, TypedQuery<T> underLyingQuery) { if (!this.isExtendedPersistenceContext() && !this.isInTx()) { return new TypedQueryNonTxInvocationDetacher<>(underlyingEntityManager, underLyingQuery); } return underLyingQuery; }
public StoredProcedureQuery createStoredProcedureQuery(String procedureName, Class... resultClasses) { long start = 0; if (isTraceEnabled) start = System.currentTimeMillis(); try { EntityManager entityManager = getEntityManager(); return detachStoredProcedureQueryNonTxInvocation(entityManager, entityManager.createStoredProcedureQuery(procedureName, resultClasses)); } finally { if (isTraceEnabled) { long elapsed = System.currentTimeMillis() - start; ROOT_LOGGER.tracef("createStoredProcedureQuery %s, resultClasses... took %dms", procedureName, elapsed); } } }
public void lock(Object entity, LockModeType lockMode) { long start = 0; if (isTraceEnabled) start = System.currentTimeMillis(); try { getEntityManager().lock(entity, lockMode); } finally { if (isTraceEnabled) { long elapsed = System.currentTimeMillis() - start; ROOT_LOGGER.tracef("lock entityClass '%s', lockMode '%s' took %dms", entity.getClass().getName(), getLockModeAsString(lockMode), elapsed); } } }
public <T> TypedQuery<T> createQuery(CriteriaQuery<T> criteriaQuery) { long start = 0; if (isTraceEnabled) start = System.currentTimeMillis(); try { // invoke underlying entity manager method and if not running in a tx // return a Query wrapper around the result. EntityManager entityManager = getEntityManager(); return detachTypedQueryNonTxInvocation(entityManager,entityManager.createQuery(criteriaQuery)); } finally { if (isTraceEnabled) { long elapsed = System.currentTimeMillis() - start; ROOT_LOGGER.tracef("createQuery took %dms", elapsed); } } }
public <T> T find(Class<T> entityClass, Object primaryKey) { long start = 0; if (isTraceEnabled) start = System.currentTimeMillis(); try { final EntityManager underlyingEntityManager = getEntityManager(); T result = getEntityManager().find(entityClass, primaryKey); detachNonTxInvocation(underlyingEntityManager); return result; } finally { if (isTraceEnabled) { long elapsed = System.currentTimeMillis() - start; ROOT_LOGGER.tracef("find entityClass '%s' took %dms", entityClass.getName(), elapsed); } } }
public <T> T merge(T entity) { long start = 0; if (isTraceEnabled) start = System.currentTimeMillis(); try { transactionIsRequired(); return getEntityManager().merge(entity); } finally { if (isTraceEnabled) { long elapsed = System.currentTimeMillis() - start; ROOT_LOGGER.tracef("merge entityClass '%s' took %dms", entity.getClass().getName(), elapsed); } } }