This section includes the following tasks:
Because the composite persistence unit is a regular persistence element, it requires a persistence.xml
file. Example 9-2 illustrates a sample persistence.xml
file. Notice that there are no datasource
or jdbc
properties.
Example 9-2 The persistence.xml File for a Composite Persistence Unit
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence persistence_1_0.xsd" version="1.0"> <persistence-unit name="compositePu" transaction-type="JTA"> <provider> org.eclipse.persistence.jpa.PersistenceProvider </provider> <jar-file>member1.jar</jar-file> <jar-file>member2.jar</jar-file> <properties> <property name="eclipselink.composite-unit" value="true"/> <property name="eclipselink.target-server" value="WebLogic_10"/> </properties> </persistence-unit> </persistence>
You can optionally use the <property name="eclipselink.composite-unit" value="true"/>
property to identify a persistence unit as a composite persistence unit.
Use the <jar-file>
element to specify the JAR files containing the composite member persistence units. The composite persistence unit will contain all the composite member persistence units found in the JAR files specified.
You can use a composite persistence unit as you would any other persistence unit; the EntityManager
could be injected, as follows:
@PersistenceContext(unitName="compositePu") EntityManagerFactory entityManagerFactory; @PersistenceContext(unitName="compositePu") EntityManager entityManager;
Or create it manually:
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("compositePu", properties);
To deploy multiple persistence units, deploy all of the JAR files (the composite persistence unit and its members) on the same class loader.
When deploying to Oracle WebLogic Server, package the JAR files in an EAR file or the WEB-INF/lib
folder of a WAR file.
When running as a standalone application, add the JAR files to the class path.
For important requirements, see Composite Persistence Unit Requirements.