public class JtaEntityManagerRegistry
extends java.lang.Object
| Modifier and Type | Class and Description | 
|---|---|
| static class  | JtaEntityManagerRegistry.EntityManagerTrackerThis object is used track all EntityManagers inherited in order
 to effectively close it when the latest Extended persistence context
 is no more accessed. | 
| Constructor and Description | 
|---|
| JtaEntityManagerRegistry(TransactionSynchronizationRegistry transactionSynchronizationRegistry)Creates a JtaEntityManagerRegistry using the specified transactionSynchronizationRegistry for the registry
 if transaction associated entity managers. | 
| Modifier and Type | Method and Description | 
|---|---|
| void | addEntityManagers(java.lang.String deploymentId,
                 java.lang.Object primaryKey,
                 java.util.Map<EntityManagerFactory,JtaEntityManagerRegistry.EntityManagerTracker> entityManagers)Adds the entity managers for the specified component to the registry. | 
| EntityManager | getEntityManager(EntityManagerFactory entityManagerFactory,
                java.util.Map properties,
                boolean extended,
                java.lang.String unitName,
                SynchronizationType synchronizationType)Gets an entity manager instance from the transaction registry, extended registry or for a transaction scoped
 entity manager, creates a new one when an existing instance is not found. | 
| JtaEntityManagerRegistry.EntityManagerTracker | getInheritedEntityManager(EntityManagerFactory entityManagerFactory)Gets an exiting extended entity manager created by a component down the call stack. | 
| boolean | isTransactionActive()Is a transaction active? | 
| java.util.Map<EntityManagerFactory,JtaEntityManagerRegistry.EntityManagerTracker> | removeEntityManagers(java.lang.String deploymentId,
                    java.lang.Object primaryKey)Removed the registered entity managers for the specified component. | 
| void | transactionStarted(java.lang.String deploymentId,
                  java.lang.Object primaryKey)Notifies the registry that a user transaction has been started or the specified component. | 
public JtaEntityManagerRegistry(TransactionSynchronizationRegistry transactionSynchronizationRegistry)
public EntityManager getEntityManager(EntityManagerFactory entityManagerFactory,
                                      java.util.Map properties,
                                      boolean extended,
                                      java.lang.String unitName,
                                      SynchronizationType synchronizationType)
                               throws java.lang.IllegalStateException
entityManagerFactory - the entity manager factory from which an entity manager is requiredproperties - the properties passed to the entity manager factory when an entity manager is createdextended - is the entity manager an extended contextunitName - java.lang.IllegalStateException - if the entity manger is extended and there is not an existing entity manager
                               instance already registeredpublic void addEntityManagers(java.lang.String deploymentId,
                              java.lang.Object primaryKey,
                              java.util.Map<EntityManagerFactory,JtaEntityManagerRegistry.EntityManagerTracker> entityManagers)
                       throws EntityManagerAlreadyRegisteredException
deploymentId - the id of the componententityManagers - the entity managers to registerEntityManagerAlreadyRegisteredException - if an entity manager is already registered with the transaction
                                                 for one of the supplied entity manager factories; for EJBs this should be caught and rethown as an EJBExceptionpublic java.util.Map<EntityManagerFactory,JtaEntityManagerRegistry.EntityManagerTracker> removeEntityManagers(java.lang.String deploymentId, java.lang.Object primaryKey)
deploymentId - the id of the componentpublic JtaEntityManagerRegistry.EntityManagerTracker getInheritedEntityManager(EntityManagerFactory entityManagerFactory)
entityManagerFactory - the entity manager factory from which an entity manager is neededpublic void transactionStarted(java.lang.String deploymentId,
                               java.lang.Object primaryKey)
deploymentId - the id of the componentpublic boolean isTransactionActive()