org.springframework.orm.jpa
Class ExtendedEntityManagerCreator

java.lang.Object
  extended by org.springframework.orm.jpa.ExtendedEntityManagerCreator

public abstract class ExtendedEntityManagerCreator
extends Object

Factory for dynamic EntityManager proxies that follow the JPA spec's semantics for "extended" EntityManagers.

Supports explicit joining of a transaction through the joinTransaction() method ("application-managed extended EntityManager") as well as automatic joining on each operation ("container-managed extended EntityManager").

Since:
2.0
Author:
Rod Johnson, Juergen Hoeller

Constructor Summary
ExtendedEntityManagerCreator()
           
 
Method Summary
static EntityManager createApplicationManagedEntityManager(EntityManager rawEntityManager, EntityManagerFactoryInfo emfInfo)
          Create an EntityManager that can join transactions with the joinTransaction() method, but is not automatically managed by the container.
static EntityManager createApplicationManagedEntityManager(EntityManager rawEntityManager, EntityManagerPlusOperations plusOperations)
          Create an EntityManager that can join transactions with the joinTransaction() method, but is not automatically managed by the container.
static EntityManager createApplicationManagedEntityManager(EntityManager rawEntityManager, EntityManagerPlusOperations plusOperations, PersistenceExceptionTranslator exceptionTranslator)
          Create an EntityManager that can join transactions with the joinTransaction() method, but is not automatically managed by the container.
static EntityManager createContainerManagedEntityManager(EntityManager rawEntityManager, EntityManagerFactoryInfo emfInfo)
          Create an EntityManager that automatically joins transactions on each operation in a transaction.
static EntityManager createContainerManagedEntityManager(EntityManager rawEntityManager, EntityManagerPlusOperations plusOperations)
          Create an EntityManager that automatically joins transactions on each operation in a transaction.
static EntityManager createContainerManagedEntityManager(EntityManager rawEntityManager, EntityManagerPlusOperations plusOperations, PersistenceExceptionTranslator exceptionTranslator)
          Create an EntityManager that automatically joins transactions on each operation in a transaction.
static EntityManager createContainerManagedEntityManager(EntityManagerFactory emf)
          Create an EntityManager that automatically joins transactions on each operation in a transaction.
static EntityManager createContainerManagedEntityManager(EntityManagerFactory emf, Map properties)
          Create an EntityManager that automatically joins transactions on each operation in a transaction.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ExtendedEntityManagerCreator

public ExtendedEntityManagerCreator()
Method Detail

createApplicationManagedEntityManager

public static EntityManager createApplicationManagedEntityManager(EntityManager rawEntityManager,
                                                                  EntityManagerPlusOperations plusOperations)
Create an EntityManager that can join transactions with the joinTransaction() method, but is not automatically managed by the container.

Parameters:
rawEntityManager - raw EntityManager
plusOperations - an implementation of the EntityManagerPlusOperations interface, if those operations should be exposed (may be null)
Returns:
an application-managed EntityManager that can join transactions but does not participate in them automatically

createApplicationManagedEntityManager

public static EntityManager createApplicationManagedEntityManager(EntityManager rawEntityManager,
                                                                  EntityManagerPlusOperations plusOperations,
                                                                  PersistenceExceptionTranslator exceptionTranslator)
Create an EntityManager that can join transactions with the joinTransaction() method, but is not automatically managed by the container.

Parameters:
rawEntityManager - raw EntityManager
plusOperations - an implementation of the EntityManagerPlusOperations interface, if those operations should be exposed (may be null)
exceptionTranslator - the exception translator to use for translating JPA commit/rollback exceptions during transaction synchronization (may be null)
Returns:
an application-managed EntityManager that can join transactions but does not participate in them automatically

createApplicationManagedEntityManager

public static EntityManager createApplicationManagedEntityManager(EntityManager rawEntityManager,
                                                                  EntityManagerFactoryInfo emfInfo)
Create an EntityManager that can join transactions with the joinTransaction() method, but is not automatically managed by the container.

Parameters:
rawEntityManager - raw EntityManager
emfInfo - the EntityManagerFactoryInfo to obtain the EntityManagerPlusOperations and PersistenceUnitInfo from
Returns:
an application-managed EntityManager that can join transactions but does not participate in them automatically

createContainerManagedEntityManager

public static EntityManager createContainerManagedEntityManager(EntityManager rawEntityManager,
                                                                EntityManagerPlusOperations plusOperations)
Create an EntityManager that automatically joins transactions on each operation in a transaction.

Parameters:
rawEntityManager - raw EntityManager
plusOperations - an implementation of the EntityManagerPlusOperations interface, if those operations should be exposed (may be null)
Returns:
a container-managed EntityManager that will automatically participate in any managed transaction

createContainerManagedEntityManager

public static EntityManager createContainerManagedEntityManager(EntityManager rawEntityManager,
                                                                EntityManagerPlusOperations plusOperations,
                                                                PersistenceExceptionTranslator exceptionTranslator)
Create an EntityManager that automatically joins transactions on each operation in a transaction.

Parameters:
rawEntityManager - raw EntityManager
plusOperations - an implementation of the EntityManagerPlusOperations interface, if those operations should be exposed (may be null)
exceptionTranslator - the exception translator to use for translating JPA commit/rollback exceptions during transaction synchronization (may be null)
Returns:
a container-managed EntityManager that will automatically participate in any managed transaction

createContainerManagedEntityManager

public static EntityManager createContainerManagedEntityManager(EntityManager rawEntityManager,
                                                                EntityManagerFactoryInfo emfInfo)
Create an EntityManager that automatically joins transactions on each operation in a transaction.

Parameters:
rawEntityManager - raw EntityManager
emfInfo - the EntityManagerFactoryInfo to obtain the EntityManagerPlusOperations and PersistenceUnitInfo from
Returns:
a container-managed EntityManager that will automatically participate in any managed transaction

createContainerManagedEntityManager

public static EntityManager createContainerManagedEntityManager(EntityManagerFactory emf)
Create an EntityManager that automatically joins transactions on each operation in a transaction.

Parameters:
emf - the EntityManagerFactory to create the EntityManager with. If this implements the EntityManagerFactoryInfo interface, appropriate handling of the native EntityManagerFactory and available EntityManagerPlusOperations will automatically apply.
Returns:
a container-managed EntityManager that will automatically participate in any managed transaction
See Also:
EntityManagerFactory.createEntityManager()

createContainerManagedEntityManager

public static EntityManager createContainerManagedEntityManager(EntityManagerFactory emf,
                                                                Map properties)
Create an EntityManager that automatically joins transactions on each operation in a transaction.

Parameters:
emf - the EntityManagerFactory to create the EntityManager with. If this implements the EntityManagerFactoryInfo interface, appropriate handling of the native EntityManagerFactory and available EntityManagerPlusOperations will automatically apply.
properties - the properties to be passed into the createEntityManager call (may be null)
Returns:
a container-managed EntityManager that will automatically participate in any managed transaction
See Also:
EntityManagerFactory.createEntityManager(java.util.Map)