[java] Spring Data-JPA versus JPA: Quelle est la différence?


Answers

L'API Java Persistence, parfois appelée JPA, est un framework Java gérant les données relationnelles dans les applications utilisant Java Platform, Standard Edition (JavaSE) et Java Platform, Enterprise Edition (JavaEE).

La persistance dans ce contexte couvre trois domaines:

  • L'API elle-même, définie dans le package javax.persistence .

  • Java Persistence Query Language (JPQL).

  • Métadonnées objet-relationnel

Spring Data JPA fait partie du projet Spring Data qui facilite la mise en œuvre de référentiels basés sur JPA.

Caractéristiques:

  • Prise en charge sophistiquée pour créer des référentiels basés sur Spring et JPA
  • Prise en charge des prédicats QueryDSL et donc des requêtes JPA sécurisées
  • Audit transparent de la classe de domaine
  • Prise en charge de la pagination, exécution de requêtes dynamiques, possibilité d'intégrer du code d'accès aux données personnalisées
  • Validation des requêtes annotées @Query au moment du bootstrap
  • Prise en charge du mappage d'entités XML
  • Configuration du référentiel @EnableJpaRepositories introduisant @EnableJpaRepositories

Question

Je suis un peu confus au sujet de la différence entre Spring Data-JPA et JPA. Je sais à propos de JPA qu'il s'agit d'une spécification pour la persistance des objets Java dans une base de données relationnelle utilisant la technologie ORM populaire. Autrement dit, JPA fournit des interfaces et d'autres technologies ORM, implémente ces interfaces connues sous le nom de fournisseur JPA, par exemple Hibernate.

Maintenant, quelle est exactement Spring Data JPA. Est-ce que Spring Data JPA a ajouté plus de fonctionnalités (Interfaces) sur JPA et encore est-il seulement spécifié ou c'est aussi un fournisseur JPA?

J'ai vu Spring Data JPA fonctionne autour des dépôts (couche DAO: si je ne me trompe pas). Donc, je veux dire comment il est différent en utilisant 'Spring Data JPA + Hibernate' ou en utilisant seulement la direction 'Hibernate'?




Related