I finally got a working persistence.xml for Java EE 7 up and running! With JPA 2.1 generation of the schema is now standardized. This means that you don’t have to use implementation specific flags, such as “eclipselink.ddl-generation” to auto-generate the schema. With Java EE 7, the location of the schema files/namespace has also changed. Below is a working file.
[sourcecode language=”xml”]
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="actionbazaar2" transaction-type="JTA">
<jta-data-source>jdbc/actionbazaar2</jta-data-source>
<properties>
<property name="javax.persistence.schema-generation.database.action" value="create"/>
<property name="javax.persistence.schema-generation.scripts.action" value="drop-and-create"/>
<property name="javax.persistence.schema-generation.scripts.drop-target" value="/tmp/mydrop.ddl"/>
<property name="javax.persistence.schema-generation.scripts.create-target" value="/tmp/mycreate.ddl"/>
<property name="eclipselink.deploy-on-startup" value="true"/>
</properties>
</persistence-unit>
</persistence>
[/sourcecode]
This works on Glassfish 4 b84. At this point the files have to be included per defect GLASSFISH-19862. Note this is using a milestone release of EclipseLink M10 to be exact. To your pom.xml file you will need the following entries for Eclipselink and Java EE 7 respectively:
[sourcecode language=”xml”]
<repositories>
<repository>
<id>java.net-promoted</id>
<url>https://maven.java.net/content/groups/promoted/</url>
</repository>
<repository>
<url>http://download.eclipse.org/rt/eclipselink/maven.repo/</url>
<id>eclipselink</id>
<layout>default</layout>
<name>Repository for library EclipseLink (JPA 2.x)</name>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.jpa</artifactId>
<version>2.5.0-M10</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0-b77</version>
<scope>provided</scope>
</dependency>
</dependencies>
[/sourcecode]
These dependencies are time sensitive. Consult these links for more information:
Thank you. It helped a lot.
Thanks for this tutorial. I need it for file persistenc.xml