| Oracle® Containers for J2EE Enterprise JavaBeans Developer's Guide 10g (10.1.3.5.0) Part Number E13981-01 |
|
|
View PDF |
The simplest way to acquire an entity manager is by using the @PersistenceContext annotation (see "Acquiring an EntityManager").
However, to acquire an entity manager in a class that does not support annotations and injection, namely helper classes, you must first define a persistence-context-ref in the appropriate deployment descriptor file.
To create an environment reference to a persistence context, do the following:
Define a logical name for the persistence context.
Define a <persistence-context-ref> element in the appropriate client deployment descriptor (see "Where do you Configure an EJB Environment Reference?") and configure the following subelements:
<persistence-context-ref-name>: a logical name for the persistence context.
<persistence-unit-name>: the name of the persistence unit associated with this persistence context.
You must define a persistence unit of this name in a persistence.xml file.
For more information, see the following:
Example 19-18 shows a <persistence-context-ref> element for a persistence context in a web.xml file.
It is a best practice to start the reference name with persistence, but it is not required. In the bean code, the lookup of this reference (see "Acquiring an Entity Manager in a Helper Class") is always prefaced by java:comp/env (for example, java:comp/env/persistence/InventoryAppMgr).
Example 19-20 web.xml For a Persistence Context
...
<servlet>
<servlet-name>webTierEntryPoint</servlet-name>
<servlet-class>com.sun.j2ee.blueprints.waf.controller.web.MainServlet</servlet-class>
<init-param>
<param-name>default_locale</param-name>
<param-value>en_US</param-value>
</init-param>
<persistence-context-ref>
<description>
Persistence context for the inventory management application.
</description>
<persistence-context-ref-name>
persistence/InventoryAppMgr
</persistence-context-ref-name>
<persistence-unit-name>
InventoryManagement <!-- Defined in persistenc.xml -->
</persistence-unit-name>
</persistence-context-ref>
</servlet>
...
For information on looking up and using an entity manager, see "Acquiring an Entity Manager in a Helper Class".