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 EMFProviderInterface
EntityManagerFactory
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 EMFProviderInterface
EntityManager
for persistence operations.javax.persistence.PersistenceException
- if unable to acquire EntityManager
.public void returnEntityManager(javax.persistence.EntityManager em)
EntityManager
.returnEntityManager
in interface EMFProviderInterface
em
- 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 EMFProviderInterface
em
- 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 EMFProviderInterface
tx
- Object
transaction to be commited.java.lang.Exception
- occured while committing transaction.public void rollbackTransaction(java.lang.Object tx)
tx.setRollbackOnly()
.rollbackTransaction
in interface EMFProviderInterface
tx
- Object
transaction to be rolled back.