Différence entre JPA et Hibernate

JPA vs Hibernate

Presque toutes les applications d'entreprise doivent accéder régulièrement aux bases de données relationnelles. Mais le problème rencontré avec les technologies antérieures (telles que JDBC) était le déséquilibre impédance (différence entre les technologies orientées objet et les technologies relationnelles). Une solution à ce problème a été introduite par l'introduction d'une couche abstraite appelée couche de persistance, qui encapsule l'accès à la base de données à partir de la logique métier. JPA (Java Persistence API) est une infrastructure dédiée à la gestion des données relationnelles (à l'aide de la couche de persistance) dans les applications Java. De nombreuses implémentations de fournisseurs de JPA sont utilisées au sein de la communauté de développeurs Java. Hibernate est l'implémentation de ce type la plus populaire de JPA (DataNucleus, EclipseLink et OpenJPA en sont d'autres). La dernière version de JPA (JPA 2.0) est entièrement prise en charge par Hibernate 3.5, qui a été publié en mars 2010..

Qu'est-ce que JPA??

JPA est un framework de gestion de données relationnelles pour Java. Il peut être utilisé avec des applications utilisant JSE (Java Platform, Standard Edition) ou JEE (Java Platform, Enterprise Edition). Sa version actuelle est JPA 2.0, qui a été publiée le 10 décembre 2009. JPA a remplacé les beans entity EJB 2.0 et EJB 1.1 (qui ont été vivement critiqués pour leur poids lourd de la communauté des développeurs Java). Bien que les beans entity (dans EJB) fournissaient des objets de persistance, de nombreux développeurs étaient habitués à utiliser des objets relativement légers proposés par DAO (Data Access Objects) et d'autres frameworks similaires. En conséquence, JPA a été introduit et a capturé bon nombre des caractéristiques intéressantes des frameworks mentionnés ci-dessus..

La persistance décrite dans JPA couvre l’API (définie dans javax.persistence), JPQL (Java Platform, Enterprise Edition) et les métadonnées requises pour les objets relationnels. L'état d'une entité de persistance est généralement conservé dans une table. Les instances d'une entité correspondent aux lignes de la table de la base de données relationnelle. Les métadonnées sont utilisées pour exprimer les relations entre les entités. Des annotations ou des fichiers descripteurs XML distincts (déployés avec l'application) sont utilisés pour spécifier les métadonnées dans les classes d'entité. JPQL, similaire aux requêtes SQL, est utilisé pour interroger des entités stockées.

Qu'est-ce que Hibernate??

Hibernate est un framework qui peut être utilisé pour le mappage objet-relationnel destiné au langage de programmation Java. Plus spécifiquement, il s'agit d'une bibliothèque ORM (object-relationnelle mapping) qui peut être utilisée pour mapper un modèle relationnel-objet dans un modèle relationnel conventionnel. En termes simples, il crée un mappage entre les classes et les tables Java des bases de données relationnelles, ainsi qu'entre les types de données Java et SQL. Hibernate peut également être utilisé pour l'interrogation et la récupération de données en générant des appels SQL. Par conséquent, le programmeur est déchargé du traitement manuel des jeux de résultats et de la conversion des objets. Hibernate est publié sous forme de framework libre et open source distribué sous licence GNU. Une implémentation pour l'API JPA est fournie dans Hibernate 3.2 et les versions ultérieures. Gavin King est le fondateur d'Hibernate.

Quelle est la différence entre JPA et Hibernate?

JPA est un framework de gestion de données relationnelles dans les applications Java, tandis qu'Hibernate est une implémentation spécifique de JPA (idéalement, JPA et Hibernate ne peuvent pas être comparés directement). En d'autres termes, Hibernate est l'un des frameworks les plus populaires implémentant JPA. Hibernate implémente JPA via les bibliothèques Hibernate Annotation et EntityManager implémentées par-dessus les bibliothèques Hibernate Core. EntityManager et Annotations suivent tous les deux le cycle de vie d'Hibernate. La dernière version de JPA (JPA 2.0) est entièrement prise en charge par Hibernate 3.5. JPA présente l’avantage d’avoir une interface normalisée. La communauté des développeurs la maîtrisera donc mieux qu’Hibernate. Par ailleurs, les API natives Hibernate peuvent être considérées comme plus puissantes car ses fonctionnalités sont un sur-ensemble de celles de JPA..