167 votes

Spring Data-JPA et JPA: Quelle est la différence?

Je suis un peu confus au sujet de la différence entre les Données du Printemps-JPA et JPA. Je sais que sur JPA que c'est une spécification pour la persistance des Objets Java de base de données relationnelle à l'aide de populaire ORM de la technologie c'est à dire en d'autres termes JPA fournit les interfaces et les autres ORM technologies implémente les interfaces connu comme fournisseur JPA Hibernate par exemple.

Maintenant, qu'est-ce exactement Spring Data JPA. C'est le Printemps des Données JPA a ajouté un peu plus de fonctionnalités (Interfaces) sur JPA et encore c'est des spécifications que ou c'est aussi un fournisseur JPA ?

J'ai vu Spring Data JPA travaux autour de référentiels (DAO couche: si je ne me trompe pas). Donc, je veux dire, comment il est différent de l'utilisation de 'Spring Data JPA + Hibernate", ou seulement à l'aide de la "veille prolongée" directement ?

J'ai peut-être tort de poser la question, mais je vous remercie de votre aide dans la résolution de ma confusion. Veuillez également poster des liens utiles de la documentation qui permet de. Merci d'avance....

135voto

Gamb Points 6251

J'ai vu le Printemps JPA travaux autour de référentiels (DAO couche: si je ne me trompe pas). Donc, je veux dire, comment il est différent de l'utilisation de 'Printemps JPA + Hibernate", ou seulement à l'aide de la "veille prolongée" directement ?

Comme vous l'avez dit, JPA est une spécification tandis que Hibernate est un particulier de la mise en œuvre de cette spécification (ces implémentations sont généralement considérés comme des Fournisseurs). Par l'utilisation d'Hibernate vous attachez-vous que le fournisseur de restreindre votre liberté de passer à une autre option en cas de besoin (par exemple, vous souhaitez utiliser EclipseLink ou ObjectDB plutôt parce qu'Hibernate a un bug qui s'arrête à votre processus de développement).

Citant Spring Data JPA's de la documentation:

Mise en œuvre d'une couche d'accès aux données d'une application a été lourd pour un bon moment. Trop de code réutilisable a dû être écrit. Classes du domaine étaient anémiques et n'ont pas été conçus dans un objet réel ou domain driven.

À l'aide de ces deux technologies permet aux développeurs de la vie beaucoup plus facile concernant le domaine riche du modèle de persistance. Néanmoins, la quantité de code réutilisable pour mettre en œuvre les référentiels, en particulier, est encore assez élevé. Ainsi, l'objectif du référentiel de l'abstraction de Données du Printemps est de réduire l'effort à mettre en œuvre des couches d'accès aux données pour les différents persistance des magasins de manière significative.

Pour résumer, il est sur le dessus de la JPA ajout d'une couche d'abstraction, de sorte à définir un "standarized" conception pour le soutien de votre Couche de Persistance , au Printemps de contexte. Ces interfaces prédéfinies (connu pour le Printemps) pour fournir les services que le framework gère à l'aide de JPA pour servir les résultats. Vous pouvez définir un référentiel dans une sorte de Printemps peut analyser le projet et de le trouver

<repositories base-package="com.acme.repositories" />

Vous permettant de l'utiliser dans le contexte d'un conteneur ou à l'extérieur.

Maintenant, qu'est-ce exactement Spring JPA. C'est le Printemps JPA a ajouté un peu plus de fonctionnalités (Interfaces) sur JPA et encore c'est des spécifications que ou c'est aussi un fournisseur JPA ?

Longue histoire courte, alors, Spring Data JPA fournit une définition pour mettre en œuvre les référentiels qui est pris en charge sous le capot par la référence à la spécification JPA, en utilisant le fournisseur que vous définissez.

43voto

Shreyos Adikari Points 3579

La Java Persistence API), parfois appelé JPA, est un langage de programmation de Java cadre de la gestion des données relationnelles dans les applications utilisant Java Platform, Standard Edition et Java Platform, Enterprise Edition.
La persistance dans ce contexte, couvre trois domaines:
i)l'API en elle-même, définie dans la javax.la persistance de package
ii)la Java Persistence Query Language (JPQL)
iii)de l'objet/relationnel métadonnées

Spring JPA est une partie de l'accord-cadre du Printemps des Données de projet qui le rend facile à implémenter facilement JPA base de référentiels.
Caractéristiques:
Sophistiqué de l'aide pour construire les référentiels basés sur Spring et JPA
Soutien pour QueryDSL prédicats et donc de type sécurisé JPA requêtes
Audit transparents de domaine classe
La Pagination de soutien, la dynamique de l'exécution de la requête, la capacité à intégrer des données personnalisées code d'accès
La Validation de @Requête annoté des requêtes au temps de chauffe
Support de XML en fonction de l'entité de cartographie
JavaConfig référentiel de configuration par l'introduction d' @EnableJpaRepositories

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X