## org.springframework.orm.jpa
Interface EntityManagerProxy

All Superinterfaces:
  javax.persistence.EntityManager

    public interface EntityManagerProxy

extends javax.persistence.EntityManager

Subinterface of `EntityManager` to be implemented by EntityManager proxies. Allows access to the underlying target EntityManager.

This interface is mainly intended for framework usage. Application code should prefer the use of the `EntityManager.getDelegate()` method to access native functionality of the underlying resource.

Since:
  2.5
Author:
  Juergen Hoeller

Method Summary
`javax.persistence.EntityManager` `getTargetEntityManager()` Return the underlying EntityManager that this proxy will delegate to.

Methods inherited from interface javax.persistence.EntityManager
`clear, close, contains, createNamedQuery, createNativeQuery, createNativeQuery, createNativeQuery, createQuery, find, flush, getDelegate, getFlushMode, getReference, getTransaction, isOpen, joinTransaction, lock, merge, persist, refresh, remove, setFlushMode`

Method Detail

### getTargetEntityManager

    javax.persistence.EntityManager getTargetEntityManager()
                                                           throws IllegalStateException

  Return the underlying EntityManager that this proxy will delegate to.

  In case of an extended EntityManager, this will be the associated raw EntityManager.

  In case of a shared ("transactional") EntityManager, this will be the raw EntityManager that is currently associated with the transaction. Outside of a transaction, an IllegalStateException will be thrown.

  Returns:
    the underlying raw EntityManager (never `null`)
  Throws:
    `IllegalStateException` - if no underlying EntityManager is available