53 votes

Spring + Hibernate versus Spring Data JPA: Sont-ils différents?

Bien que n'étant pas novice, je suis en train d'apprendre le framework spring (encore!) afin d'être sûr que j'ai vraiment le comprendre. J'ai juste idée sur le noyau de Printemps (DI). Maintenant, je me concentre sur la couche de Données.

Je suis venu à travers le terme de "Spring et Hibernate". Comme je l'ai peut interpréter cela signifierait à l'aide de Spring Framework Hibernate comme outil ORM/JPA fournisseur.

Maintenant, je suis venu à travers de "Spring Data JPA". J'ai précisé sur tant sur le Spring Data JPA, que c'est une couche d'abstraction sur le dessus de la JPA (et sous le capot Spring Data JPA utilise Hibernate ou de tout autre fournisseur JPA).

Maintenant, ces termes sont-ils de même? Ce qui est, est "Spring + hibernate" même que celui de "Spring Data JPA". Si non, alors quelle est la différence / les similitudes?

Je suis vraiment confus sur le nombre de termes/états (comme ci-dessus) apparemment semblables, mais peut être différent.

64voto

JB Nizet Points 250258

Spring-data-jpa, comme vous le dites, offre plus que juste la classique du Printemps-JPA intégration. Avec JPA/Hibernate intégration, vous obtenez principalement

  • déclaratif de gestion des transactions en utilisant JPA/Hibernate transactions
  • exception traduction
  • l'EntityManager ou la mise en veille prolongée la SessionFactory comme injectable haricots

Avec Spring-data-jpa, vous obtenez tout ce que, plus (entre autres choses)

  • interface-seulement dépôts, à l'aide de noms de méthode pour déduire automatiquement les requêtes
  • @Requête d'annotation pour définir la requête d'une interface méthode doit renvoyer
  • la gestion automatique de requêtes Paginable
  • les classes de base pour la norme crud dépôts

C'est juste une petite introduction. Pour plus d'aide, veuillez lire la documentation.

8voto

Bhagwati Malav Points 1237

quand vous parlez de spring + hibernate

  1. Si vous lisez hibernate seul, vous serait-il comprendre les utilisations de la cartographie(ce qui en gros de configuration pour la cartographie de pojo avec la base de données de relations) et de configuration(configuration spécifique de la base de données comme pilote de classe, url, nom d'utilisateur, mot de passe, le dialecte, etc.).
  2. Alors maintenant, si vous voulez utiliser de lecture, d'écriture, de mise à jour etc. vous devez obtenir hibernatesessionfactory, de transaction et de s'engager. Beaucoup de pré-et post-travaux de chaque opération.
  3. Lorsque vous intégrer hibernate avec le printemps, le printemps utilise cette configuration et de le conserver dans le contexte de l'application, et fournir emballage hibernatetemplate qui en interne à l'aide de hibernatesessionfactory. Si vous n'avez pas besoin de beaucoup de soins sur les pré et post code tout en faisant de ces opérations.
  4. Il est également prévu la mise en cache(premier et second niveau de cache) pour améliorer les performances.
  5. Et aussi vous donner de travailler avec les requêtes HQL qui est indépendant de la base de données.Il utilise la base de données dialecte de générer la base de données sql spécifique.

Maintenant, permet de parler de printemps + data jpa

  1. il est livré avec la base du référentiel des interfaces(à partir du printemps de données commune, spring jpa)
  2. Supposons donc que vous êtes intéressé à faire du crud opération, il suffit de prolonger crud repository, et le printemps va injecter de sa mise en œuvre au moment de l'exécution.
  3. Disons que vous voulez définir une méthode commune pour votre application, vous pouvez le faire en créant un nouveau référentiel de l'interface qui s'étend Repository interface. Et peut l'utiliser à travers l'application.
  4. Il est également de fournir des méthodes de requête qui vous permettent d'utiliser natif sql or jpql.

2voto

Tanim reja Points 337

C'est trop tard mais j'ai trouvé utile .

JPA est la Java Persistence API Java de l'API standard pour le mapping objet-relationnel.

JPA n'est qu'une spécification - vous besoin d'une mise en œuvre pour être en mesure de l'utiliser. Hibernate est l'un des plus connu et le plus utilisé des implémentations JPA, mais il en existe d'autres, tels que EclipseLink JPA.

Le Framework Spring est un grand cadre pour vous aider à écrire au niveau de l'entreprise logiciels plus facile. Il contient un support pour de nombreuses technologies Java, y compris la JPA.

Le Framework Spring est constitué d'un ensemble de projets, et l'un de ces projets est du Ressort des Données.

Le but du Printemps de Données est de rendre plus facile de travailler avec différents types de bases de données, depuis les bases de données relationnelles les bases de données NoSQL. Printemps de Données prend en charge JPA via le Spring Data JPA sous-projet.

Écrire un programme qui utilise JPA, vous avez besoin d'au moins une implémentation JPA, tels que la mise en veille.

Si vous utilisez le Framework Spring pour votre application, vous souhaiterez probablement utiliser Spring Data JPA avec Hibernate.

copié à partir de ce lien

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