Les dépendances Maven concernant javax.la persistance POT?
Je suis en utilisant le Printemps 3 et Hibernate 4 JPA. Je suis confus en ce qui concerne javax.la persistance JAR. Je l'ai trouvé en dessous de deux dépendances Maven sur Google. Merci de m'indiquer ce qui est nécessaire en dessous de deux dépendances?
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>persistence-api</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>javax.persistence</artifactId>
<version>2.0.0</version>
</dependency>
OriginalL'auteur user755806 | 2014-02-03
Vous devez vous connecter pour publier un commentaire.
La première de ces
javax.persistence.persistence-api
est l'API Pot, qui définit neutre interfaces qui demande de travailler avec.La seconde est la EclipseLink mise en œuvre de l'API.
Il est possible de supprimer les références à la première
javax.persistence
dépendance et il suffit d'utiliser la EclipseLink jar. Cependant il y a une bonne raison de ne pas.L'écriture et la compilation de votre code à l'égard du vendeur-neutre
javax.persistence
API permet de s'assurer que le code de votre application est portable sur les différents fournisseurs de persistance. Par exemple, si vous avez souhaité pour passer en mode veille prolongée, alors vous pourriez mettre dans votre pom.xml et supprimer leorg.eclipse
dépendance, sans changer tout le code de votre application.Cependant, il y a un peu plus de détails que vous devez changer. Pour vous assurer que votre application peut basculer entre les fournisseurs de persistance, de la "mise en œuvre" de la dépendance ne doit être utilisé lors de l'exécution. Sinon, le vendeur, le code peut facilement faire son chemin dans votre base de code. Ajoutez les lignes suivantes à votre
org.eclipse
de dépendance et de voir si votre application compile.Comme un résultat que vous pouvez trouver que votre demande a EclipseLink-code spécifique. Cela signifie que vous ne pouvait pas changer de fournisseur de persistance sans modifier votre base de code.
Si c'est un problème est à vous. 😉
Comme je l'ai dit dans ma réponse, vous ne pouvez pas utiliser
javax.persistence
sur son propre, car il ne fournit pas une mise en œuvre. Soit utiliserorg.eclipse
sur son propre ou avecorg.eclipse
défini commeruntime
étendue.Steve, Merci pour votre réponse. Ce n'exécution de la portée moyenne? Aussi , est ejb3.la persistance jar met également en œuvre l'API java persistence ?
Cela signifie qu'il ne sera pas utilisé au moment de la compilation. Par conséquent, la
javax.persistence
API sera utilisé pour la compilation, en gardant votre code fournisseur neutre.bon, demain, si je veux ot utilisation de toute autre mise en oeuvre, alors je peux juste changer le vendeur secific dépendance droit? Aussi dois-je les garder ejb3 persistance pot? est-il également de la mise en œuvre de javax persistence API ?
OriginalL'auteur Steve
Qui est la dernière de l'un et compact avec hibernate 4. Également de la dernière version de la mise en veille prolongée jpa 2.1.0 veuillez cocher cette lien
oui. u r droit.
OriginalL'auteur Sureshkumar Panneerselvan
Vous n'avez pas besoin d'inclure explicitement la dépendance, il est en veille prolongée pom et sera ajouté transitivement
Vous avez besoin d'utiliser hibernate-entitymanager
Oui. suis de l'utilisation d'hibernate-entitymanager seulement
Si vous utilisez Eclipse ouvert pom de dépendance de la hiérarchie et de vérifier qu'il n'y
OriginalL'auteur Evgeniy Dorofeev