sirve - settitle java
¿Qué jar debo incluir para usar el paquete javax.persistence en una aplicación basada en hibernación? (7)
¿Está bien tomarlo del proyecto Glassfish (glassfish-persistence-api) o puede haber un tarro de Hibernate?
En el último y mejor Hibernate, pude resolver la dependencia incluyendo hibernate-jpa-2.0-api-1.0.0.Final.jar dentro del directorio lib / jpa. No encontré el archivo ejb-persistence en la descarga más reciente.
En general, estoy de acuerdo con las respuestas anteriores que recomiendan agregar la dependencia de maven, pero prefiero seguir la solución.
Agregue una dependencia con clases API para el perfil completo de JavaEE:
<properties>
<javaee-api.version>7.0</javaee-api.version>
<hibernate-entitymanager.version>5.1.3.Final</hibernate-entitymanager.version>
</properties>
<depencies>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>${javaee-api.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
También agregue dependencia con un proveedor de JPA particular como antonycc sugirió:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>${hibernate-entitymanager.version}</version>
</dependency>
Tenga en cuenta que <scope>provided</scope>
en la sección de dependencia API: esto significa que el jar correspondiente no se exportará a lib/
artifact, sino que será proporcionado por el servidor de aplicaciones. Asegúrese de que su servidor de aplicaciones implemente la versión especificada de la API JavaEE.
Para JPA 2.1, el paquete javax.persistence se puede encontrar aquí:
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.1-api</artifactId>
<version>1.0.0.Final</version>
</dependency>
Ver: hibernate-jpa-2.1-api en Maven Central. El patrón parece ser cambiar el nombre del artefacto a medida que cambia la versión de JPA. Si esto continúa, se puede esperar que lleguen versiones nuevas a Maven Central aquí: versiones HPA de Hibernate
El JPA 2.1 APi anterior se puede usar junto con Hibernate 4.3.7, específicamente:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.3.7.Final</version>
</dependency>
Puede usar ejb3-persistence.jar que se incluye con hibernate. Este jar solo incluye el paquete javax.persistence.
Si está desarrollando un sistema OSGi, le recomendaría que descargue la versión "bundlefied" de Springsource Enterprise Bundle Repository .
De lo contrario, está bien usar un archivo jar normal que contenga el paquete javax.persistence
Si está utilizando maven, agregue a continuación la dependencia debería funcionar
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>persistence-api</artifactId>
<version>1.0</version>
</dependency>
hibernate.jar e hibernate-entitymanager.jar solo contienen los paquetes org.hibernate. *. Entonces deberías tomarlo del proyecto Glassfish.