public class EMFProviderCMT implements EMFProviderInterface
EntityManager and EntityManagerFactory
in container's environment context via JNDI.
For this implementation to work persistence-context-ref and
persistence-unit-ref should be declared for enterprise bean in
/META-INF/ejb-jar.xml. For example:
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar
version = "3.0"
xmlns = "http://java.sun.com/xml/ns/javaee"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd">
<enterprise-beans>
<session>
<ejb-name>TestEJB</ejb-name>
<persistence-context-ref>
<persistence-context-ref-name>REFERENCE_TO_ENTITY_MANAGER</persistence-context-ref-name>
<persistence-unit-name>PERSISTENCE_UNIT_NAME</persistence-unit-name>
</persistence-context-ref>
<persistence-unit-ref>
<persistence-unit-ref-name>REFERENCE_TO_ENTITY_MANAGER_FACTORY</persistence-unit-ref-name>
<persistence-unit-name>PERSISTENCE_UNIT_NAME</persistence-unit-name>
</persistence-unit-ref>
</session>
</enterprise-beans>
</ejb-jar>
getTransaction() will return instance of EJBContext
located in "java:comp/EJBContext" in JNDI.
Transaction will be committed by container. To roll back transaction EJBContext.setRollbackOnly()
is used.| Modifier and Type | Field and Description |
|---|---|
java.lang.String |
entityManagerFactoryRef
Name of the reference to managed entity manager factory.
|
java.lang.String |
entityManagerRef
Name of the reference to container managed entity manager.
|
ENTITY_MANAGER, ENTITY_MANAGER_FACTORY, JPA_ENTITY_MANAGER, JPA_ENTITY_MANAGER_FACTORY, JPA_PERSISTENCE_UNIT_NAME, JPA_TRANSACTION, PERSISTENCE_UNIT_NAME, TRANSACTION| Constructor and Description |
|---|
EMFProviderCMT()
Creates new EMF provider.
|
EMFProviderCMT(java.util.Properties config)
Creates new EMF provider.
|
EMFProviderCMT(java.lang.String entityManagerRef,
java.lang.String entityManagerFactoryRef)
Creates new EMF provider with specified context reference names.
|
| Modifier and Type | Method and Description |
|---|---|
void |
commitTransaction(java.lang.Object tx)
Does nothing - container will commit transaction.
|
javax.persistence.EntityManagerFactory |
get()
Returns
EntityManagerFactory found in container's environment context. |
javax.persistence.EntityManager |
getEntityManager()
Returns
EntityManager found in container's
environment context. |
java.lang.Object |
getTransaction(javax.persistence.EntityManager em)
Returns
EJBContext found in container's
environment context. |
void |
returnEntityManager(javax.persistence.EntityManager em)
Does nothing - container will close
EntityManager. |
void |
rollbackTransaction(java.lang.Object tx)
Sets rollback flag for transaction by
tx.setRollbackOnly(). |
public java.lang.String entityManagerRef
public java.lang.String entityManagerFactoryRef
public EMFProviderCMT()
EntityManager and
EntityManagerFactory in container's environment context.public EMFProviderCMT(java.util.Properties config)
EntityManager and
EntityManagerFactory in container's environment context.config - Properties for provider configuration.public EMFProviderCMT(java.lang.String entityManagerRef,
java.lang.String entityManagerFactoryRef)
entityManagerRef - String name of context reference to entity manager.entityManagerFactoryRef - String name of context reference to entity manager factory.public javax.persistence.EntityManagerFactory get()
EntityManagerFactory found in container's environment context.get in interface EMFProviderInterfaceEntityManagerFactory can be used to acquire meta-data (for JPA 2.0) or implement
"application managed entity manager" pattern.public javax.persistence.EntityManager getEntityManager()
throws javax.persistence.PersistenceException
EntityManager found in container's
environment context.getEntityManager in interface EMFProviderInterfaceEntityManager for persistence operations.javax.persistence.PersistenceException - if unable to acquire EntityManager.public void returnEntityManager(javax.persistence.EntityManager em)
EntityManager.returnEntityManager in interface EMFProviderInterfaceem - EntityManager which should be closed.public java.lang.Object getTransaction(javax.persistence.EntityManager em)
throws java.lang.Exception
EJBContext found in container's
environment context.getTransaction in interface EMFProviderInterfaceem - EntityManager needed if joining to existing transaction or null.Object Transaction for persistence operations.javax.persistence.PersistenceException - if unable to acquire or open transaction.java.lang.Exception - if unable to acquire or open transaction.public void commitTransaction(java.lang.Object tx)
throws java.lang.Exception
commitTransaction in interface EMFProviderInterfacetx - Object transaction to be commited.java.lang.Exception - occured while committing transaction.public void rollbackTransaction(java.lang.Object tx)
tx.setRollbackOnly().rollbackTransaction in interface EMFProviderInterfacetx - Object transaction to be rolled back.