Est-il acceptable de le retirer du projet Glassfish (glassfish-persistence-api) ou peut-être y a-t-il un pot Hibernate?
Si vous développez un système OSGi, je vous recommande de télécharger la version "bundlefied" depuis Springsource Enterprise Bundle Repository .
Sinon, vous pouvez utiliser un fichier jar standard contenant le package javax.persistence
Si vous utilisez maven, l'ajout de la dépendance ci-dessous devrait fonctionner
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>persistence-api</artifactId>
<version>1.0</version>
</dependency>
Vous pouvez utiliser le ejb3-persistence.jar fourni avec hibernate. Ce fichier jar inclut uniquement le package javax.persistence.
Dans le dernier et le plus grand Hibernate, j'ai pu résoudre la dépendance en incluant le hibernate-jpa-2.0-api-1.0.0.Final.jar dans le répertoire lib/jpa. Je n'ai pas trouvé le pot ejb-persistence dans le téléchargement le plus récent.
hibernate.jar et hibernate-entitymanager.jar ne contiennent que les packages org.hibernate. *. Vous devriez donc le prendre du projet Glassfish.
Pour JPA 2.1, le package javax.persistence se trouve ici:
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.1-api</artifactId>
<version>1.0.0.Final</version>
</dependency>
Voir: hibernate-jpa-2.1-api sur Maven Central Le modèle semble être de changer le nom de l'artefact à mesure que la version JPA change. Si cela continue, de nouvelles versions devraient arriver dans Maven Central ici: Hibernate JPA versions
L'APi JPA 2.1 ci-dessus peut être utilisé conjointement avec Hibernate 4.3.7, en particulier:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.3.7.Final</version>
</dependency>
En général, je suis d'accord avec les réponses ci-dessus qui recommandent d'ajouter une dépendance maven, mais je préfère la solution suivante.
Ajoutez une dépendance avec des classes d'API pour le profil JavaEE complet:
<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>
Ajoutez également la dépendance avec un fournisseur JPA particulier comme suggéré par antonycc:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>${hibernate-entitymanager.version}</version>
</dependency>
Remarque <scope>provided</scope>
dans la section des dépendances de l'API: cela signifie que le pot correspondant ne sera pas exporté dans l'artefact lib/
, mais sera fourni par le serveur d'applications. Assurez-vous que votre serveur d'applications implémente la version spécifiée de l'API JavaEE.