public abstract class SharedEntityManagerCreator
extends java.lang.Object
javax.persistence.EntityManager
for a given javax.persistence.EntityManagerFactory
.
The shareable 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.
LocalEntityManagerFactoryBean
,
JpaTransactionManager
Modifier and Type | Class and Description |
---|---|
private static class |
SharedEntityManagerCreator.DeferredQueryInvocationHandler
Invocation handler that handles deferred Query objects created by
non-transactional createQuery invocations on a shared EntityManager.
|
private static class |
SharedEntityManagerCreator.SharedEntityManagerInvocationHandler
Invocation handler that delegates all calls to the current
transactional EntityManager, if any; else, it will fall back
to a newly created EntityManager per operation.
|
Constructor and Description |
---|
SharedEntityManagerCreator() |
Modifier and Type | Method and Description |
---|---|
static EntityManager |
createSharedEntityManager(EntityManagerFactory emf)
Create a transactional EntityManager proxy for the given EntityManagerFactory.
|
static EntityManager |
createSharedEntityManager(EntityManagerFactory emf,
java.util.Map properties)
Create a transactional EntityManager proxy for the given EntityManagerFactory.
|
static EntityManager |
createSharedEntityManager(EntityManagerFactory emf,
java.util.Map properties,
java.lang.Class... entityManagerInterfaces)
Create a transactional EntityManager proxy for the given EntityManagerFactory.
|
public static EntityManager createSharedEntityManager(EntityManagerFactory emf)
emf
- the EntityManagerFactory to delegate to.
If this implements the EntityManagerFactoryInfo
interface,
appropriate handling of the native EntityManagerFactory and available
EntityManagerPlusOperations
will automatically apply.public static EntityManager createSharedEntityManager(EntityManagerFactory emf, java.util.Map properties)
emf
- the EntityManagerFactory to delegate to.
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
)public static EntityManager createSharedEntityManager(EntityManagerFactory emf, java.util.Map properties, java.lang.Class... entityManagerInterfaces)
emf
- EntityManagerFactory to obtain EntityManagers from as neededproperties
- the properties to be passed into the
createEntityManager
call (may be null
)entityManagerInterfaces
- the interfaces to be implemented by the
EntityManager. Allows the addition or specification of proprietary interfaces.