Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "EclipseLink/Examples/JPA/OutsideContainer"
m |
|||
(4 intermediate revisions by the same user not shown) | |||
Line 10: | Line 10: | ||
<source lang="xml"> | <source lang="xml"> | ||
− | <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 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="my-app" transaction-type="RESOURCE_LOCAL"> | <persistence-unit name="my-app" transaction-type="RESOURCE_LOCAL"> | ||
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> | <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> | ||
Line 60: | Line 63: | ||
properties.put(JDBC_USER, "scott"); | properties.put(JDBC_USER, "scott"); | ||
properties.put(JDBC_PASSWORD, "tiger"); | properties.put(JDBC_PASSWORD, "tiger"); | ||
− | |||
− | |||
// Configure logging. FINE ensures all SQL is shown | // Configure logging. FINE ensures all SQL is shown | ||
Line 78: | Line 79: | ||
Persistence.createEntityManagerFactory(unitName, properties); | Persistence.createEntityManagerFactory(unitName, properties); | ||
</source> | </source> | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | '''For more information, see "Testing JPA Outside a Container" in the ''[http://www.eclipse.org/eclipselink/documentation/ EclipseLink Solutions Guide]''.''' | ||
+ | |||
+ | [[Category:EclipseLink/Example/JPA|OutsideContainer]] |
Latest revision as of 19:05, 1 February 2013
Users may also use the EntityManager API outside the container, either through configuring a persistence.xml
, or by creating a EntityManagerFactory for a given persistence unit name and properties map (includes database information etc.)
EntityManagerFactory emf = Persistence.createEntityManagerFactory(persistenceUnitName, propertiesMap); EntityManager em = emf.createEntityManager();
JavaSE Configuration using persistence.xml
<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="my-app" transaction-type="RESOURCE_LOCAL"> <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> <exclude-unlisted-classes>false</exclude-unlisted-classes> <properties> <property name="javax.persistence.jdbc.driver" value="oracle.jdbc.OracleDriver"/> <property name="javax.persistence.jdbc.url" value="jdbc:oracle:thin:@localhost:1521:orcl"/> <property name="javax.persistence.jdbc.user" value="scott"/> <property name="javax.persistence.jdbc.password" value="tiger"/> </properties> </persistence-unit> </persistence>
Note, "javax.persistence.jdbc"
is used in JPA 2.0, as of EclipseLink 1.2, previously "eclipselink.jdbc"
must be used.
Now the EntityManagerFactory can be instantiated using:
Persistence.createEntityManagerFactory("my-app");
JavaSE Configuration using Property Map
When a simple persistence unit configuration is defined which relies on container deployment:
<persistence-unit name="employee" transaction-type="RESOURCE_LOCAL"> <non-jta-data-source>jdbc/MyDS</non-jta-data-source> </persistence-unit>
In order to test this persistence unit outside of the container the JavaSE bootstrapping API must be used. the following code can be used to customize the configuration:
import static org.eclipse.persistence.config.PersistenceUnitProperties.*; ... Map properties = new HashMap(); // Ensure RESOURCE_LOCAL transactions is used. properties.put(TRANSACTION_TYPE, PersistenceUnitTransactionType.RESOURCE_LOCAL.name()); // Configure the internal EclipseLink connection pool properties.put(JDBC_DRIVER, "oracle.jdbc.OracleDriver"); properties.put(JDBC_URL, "jdbc:oracle:thin:@localhost:1521:ORCL"); properties.put(JDBC_USER, "scott"); properties.put(JDBC_PASSWORD, "tiger"); // Configure logging. FINE ensures all SQL is shown properties.put(LOGGING_LEVEL, "FINE"); properties.put(LOGGING_TIMESTAMP, "false"); properties.put(LOGGING_THREAD, "false"); properties.put(LOGGING_SESSION, "false"); // Ensure that no server-platform is configured properties.put(TARGET_SERVER, TargetServer.None);
Now the EntityManagerFactory can be instantiated for testing using:
Persistence.createEntityManagerFactory(unitName, properties);
For more information, see "Testing JPA Outside a Container" in the EclipseLink Solutions Guide.