2010-06-09 20 views
6

El Eclipselink documentation dice que necesito las siguientes entradas en mi pom.xml conseguirlo con Maven:¿Cómo configurar Eclipselink con JPA?

<dependencies> 
    <dependency> 
    <groupId>org.eclipse.persistence</groupId> 
    <artifactId>eclipselink</artifactId> 
    <version>2.0.0</version> 
    <scope>compile</scope> 
     ... 
    </dependency> 
<dependencies> 
     ... 
<repositories> 
    <repository> 
    <id>EclipseLink Repo</id> 
    <url>http://www.eclipse.org/downloads/download.php?r=1&amp;nf=1&amp;file=/rt/eclipselink/maven.repo</url> 
    </repository>  
     ... 
</repositories> 

Pero cuando trato de usar @Entity NetBeans anotación me dice, que la clase no se puede encontrar. Y de hecho: no hay clase Entity en el paquete javax.persistence de Eclipselink.

¿Cómo debo configurar Eclipselink con Maven?

Respuesta

13

El artefacto eclipselink no proporciona la APP 2.0 API, es necesario agregar javax.persistence:

<repositories> 
    <repository> 
    <id>eclipselink</id> 
    <url>http://www.eclipse.org/downloads/download.php?r=1&amp;nf=1&amp;file=/rt/eclipselink/maven.repo/</url> 
    </repository> 
</repositories> 
<dependencies> 
    <dependency> 
    <groupId>org.eclipse.persistence</groupId> 
    <artifactId>eclipselink</artifactId> 
    <version>2.0.0</version> 
    <scope>provided</scope><!-- since I'm running inside a Java EE container --> 
    </dependency> 
    <dependency> 
    <groupId>org.eclipse.persistence</groupId> 
    <artifactId>javax.persistence</artifactId> 
    <version>2.0.0</version> 
    <scope>provided</scope><!-- since I'm running inside a Java EE container --> 
    </dependency> 
    ... 

me recomiendan usar el OSGi EclipseLink frasco no por el bien de la simplicidad.

+0

Ya había intentado agregar la dependencia javax.persistence, pero hay un error en NetBeans que me dice que no hay clase 'Entity'. Si convierto la misma clase a Java, todo está bien. Tu publicación me llevó al lugar correcto. – deamon

0

Usted puede tratar de añadir

<dependency> 
    <groupId>org.eclipse.persistence</groupId> 
    <artifactId>javax.persistence</artifactId> 
    <version>2.0.0</version> 
    <scope>compile</scope> 
</dependency> 
2

Cuando miro en mi repositorio local de Maven, org.eclipse.persistence: EclipseLink en efecto contener la API de persistencia, al menos para la versión 2.0.0-instantánea de EclipseLink .

Pero hay otro conjunto de dependencias en el repositorio de eclipselink que están un poco más modularizadas. Estas son las dependencias que estoy usando en un proyecto actual:

<!-- persistence api --> 
<dependency> 
    <groupId>org.eclipse.persistence</groupId> 
    <artifactId>javax.persistence</artifactId> 
    <version>2.0.0</version> 
    <scope>provided</scope> 
</dependency> 
<!-- jpa implementation --> 
<dependency> 
    <groupId>org.eclipse.persistence</groupId> 
    <artifactId>org.eclipse.persistence.jpa</artifactId> 
    <version>2.0.2</version> 
    <scope>provided</scope> 
</dependency> 

Tenga en cuenta que el alcance se establece en proporcioné desde que se despliegan para glassfish que ya contiene EclipseLink.

4

Simplemente agregue lo siguiente a su pom.xml.

Ahora bien, estos son artifats en los repositorios de Maven, así que no hay necesidad de añadir ningún <repository>

<!-- JPA --> 
<dependency> 
    <groupId>org.eclipse.persistence</groupId> 
    <artifactId>eclipselink</artifactId> 
    <version>2.5.1</version> 
</dependency> 
<dependency> 
    <groupId>org.eclipse.persistence</groupId> 
    <artifactId>javax.persistence</artifactId> 
    <version>2.0.0</version> 
</dependency> 



O si está utilizando una aplicación de uso del servidor Java EE org.eclipse.persistence.jpa:org.eclipse.persistence, ya que no incluye dependecies que ya están en el servidor.

<!-- JPA for Java EE application servers --> 
<dependency> 
    <groupId>org.eclipse.persistence</groupId> 
    <artifactId>org.eclipse.persistence.jpa</artifactId> 
    <version>2.5.1</version> 
    <scope>provided</scope> 
</dependency> 
<dependency> 
    <groupId>org.eclipse.persistence</groupId> 
    <artifactId>javax.persistence</artifactId> 
    <version>2.0.0</version> 
    <scope>provided</scope> 
</dependency> 
+0

¿Tiene alguna referencia? –

Cuestiones relacionadas