Package org.springframework.orm.jpa
Class SharedEntityManagerCreator
- java.lang.Object
- org.springframework.orm.jpa.SharedEntityManagerCreator
public abstract class SharedEntityManagerCreator extends Object
Delegate for creating a shareable JPAEntityManager
reference for a givenEntityManagerFactory
.A shared EntityManager will behave just like an EntityManager fetched from an application server's JNDI environment, as defined by the JPA specification. It will delegate all calls to the current transactional EntityManager, if any; otherwise it will fall back to a newly created EntityManager per operation.
For a behavioral definition of such a shared transactional EntityManager, see
PersistenceContextType.TRANSACTION
and its discussion in the JPA spec document. This is also the default being used for the annotation-basedPersistenceContext.type()
.- Since:
- 2.0
- Author:
- Juergen Hoeller, Rod Johnson, Oliver Gierke
- See Also:
PersistenceContext
,PersistenceContextType.TRANSACTION
,JpaTransactionManager
,ExtendedEntityManagerCreator
Constructor Summary
Constructors Constructor Description SharedEntityManagerCreator()
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static EntityManager
createSharedEntityManager(EntityManagerFactory emf)
Create a transactional EntityManager proxy for the given EntityManagerFactory.static EntityManager
createSharedEntityManager(EntityManagerFactory emf, Map<?,?> properties)
Create a transactional EntityManager proxy for the given EntityManagerFactory.static EntityManager
createSharedEntityManager(EntityManagerFactory emf, Map<?,?> properties, boolean synchronizedWithTransaction)
Create a transactional EntityManager proxy for the given EntityManagerFactory.static EntityManager
createSharedEntityManager(EntityManagerFactory emf, Map<?,?> properties, boolean synchronizedWithTransaction, Class<?>... entityManagerInterfaces)
Create a transactional EntityManager proxy for the given EntityManagerFactory.static EntityManager
createSharedEntityManager(EntityManagerFactory emf, Map<?,?> properties, Class<?>... entityManagerInterfaces)
Create a transactional EntityManager proxy for the given EntityManagerFactory.
Constructor Detail
SharedEntityManagerCreator
public SharedEntityManagerCreator()
Method Detail
createSharedEntityManager
public static EntityManager createSharedEntityManager(EntityManagerFactory emf)
Create a transactional EntityManager proxy for the given EntityManagerFactory.- Parameters:
emf
- the EntityManagerFactory to delegate to.- Returns:
- a shareable transaction EntityManager proxy
createSharedEntityManager
public static EntityManager createSharedEntityManager(EntityManagerFactory emf, Map<?,?> properties)
Create a transactional EntityManager proxy for the given EntityManagerFactory.- Parameters:
emf
- the EntityManagerFactory to delegate to.properties
- the properties to be passed into thecreateEntityManager
call (may benull
)- Returns:
- a shareable transaction EntityManager proxy
createSharedEntityManager
public static EntityManager createSharedEntityManager(EntityManagerFactory emf, Map<?,?> properties, boolean synchronizedWithTransaction)
Create a transactional EntityManager proxy for the given EntityManagerFactory.- Parameters:
emf
- the EntityManagerFactory to delegate to.properties
- the properties to be passed into thecreateEntityManager
call (may benull
)synchronizedWithTransaction
- whether to automatically join ongoing transactions (according to the JPA 2.1 SynchronizationType rules)- Returns:
- a shareable transaction EntityManager proxy
- Since:
- 4.0
createSharedEntityManager
public static EntityManager createSharedEntityManager(EntityManagerFactory emf, Map<?,?> properties, Class<?>... entityManagerInterfaces)
Create a transactional EntityManager proxy for the given EntityManagerFactory.- Parameters:
emf
- the EntityManagerFactory to obtain EntityManagers from as neededproperties
- the properties to be passed into thecreateEntityManager
call (may benull
)entityManagerInterfaces
- the interfaces to be implemented by the EntityManager. Allows the addition or specification of proprietary interfaces.- Returns:
- a shareable transactional EntityManager proxy
createSharedEntityManager
public static EntityManager createSharedEntityManager(EntityManagerFactory emf, Map<?,?> properties, boolean synchronizedWithTransaction, Class<?>... entityManagerInterfaces)
Create a transactional EntityManager proxy for the given EntityManagerFactory.- Parameters:
emf
- the EntityManagerFactory to obtain EntityManagers from as neededproperties
- the properties to be passed into thecreateEntityManager
call (may benull
)synchronizedWithTransaction
- whether to automatically join ongoing transactions (according to the JPA 2.1 SynchronizationType rules)entityManagerInterfaces
- the interfaces to be implemented by the EntityManager. Allows the addition or specification of proprietary interfaces.- Returns:
- a shareable transactional EntityManager proxy
- Since:
- 4.0