Différence entre JPA et Hibernate

Différence entre JPA et Hibernate
Différence entre JPA et Hibernate

Vidéo: Différence entre JPA et Hibernate

Vidéo: Différence entre JPA et Hibernate
Vidéo: Tarifs réglementés et offres de marché : quelle est la différence ? - Hopenergie 2024, Novembre
Anonim

JPA contre Hibernate

Presque toutes les applications d'entreprise doivent accéder régulièrement aux bases de données relationnelles. Mais un problème rencontré avec les technologies antérieures (telles que JDBC) était le décalage d'impédance (différence entre les technologies orientées objet et 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 un framework dédié à la gestion des données relationnelles (utilisant la couche de persistance) dans les applications Java. Il existe de nombreuses implémentations de fournisseurs de JPA utilisées au sein de la communauté des développeurs Java. Hibernate est l'implémentation la plus populaire de JPA (DataNucleus, EclipseLink et OpenJPA en sont quelques 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 entité EJB 2.0 et EJB 1.1 (qui ont été fortement critiqués pour leur poids lourd par la communauté des développeurs Java). Bien que les beans entité (dans les EJB) fournissaient des objets de persistance, de nombreux développeurs avaient l'habitude d'utiliser à la place 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é de nombreuses fonctionnalités intéressantes des frameworks mentionnés ci-dessus.

La persistance telle que décrite dans JPA couvre l'API (définie dans javax.persistance), 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 à des 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 de descripteurs XML séparés (déployés avec l'application) sont utilisés pour spécifier les métadonnées dans les classes d'entités. JPQL, qui est similaire aux requêtes SQL, est utilisé pour interroger les entités stockées.

Qu'est-ce que l'hibernation ?

Hibernate est un framework qui peut être utilisé pour le mappage objet-relationnel destiné au langage de programmation Java. Plus précisément, il s'agit d'une bibliothèque ORM (mappage objet-relationnel) qui peut être utilisée pour mapper un modèle objet-relationnel dans un modèle relationnel conventionnel. En termes simples, il crée un mappage entre les classes Java et les tables dans les bases de données relationnelles, ainsi qu'entre les types de données Java et SQL. Hibernate peut également être utilisé pour interroger et récupérer des données en générant des appels SQL. Par conséquent, le programmeur est soulagé de la manipulation manuelle des ensembles de résultats et de la conversion des objets. Hibernate est publié en tant que framework gratuit 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 cadre de gestion des données relationnelles dans les applications Java, tandis que Hibernate est une implémentation spécifique de JPA (donc, idéalement, JPA et Hibernate ne peuvent pas être directement comparés). En d'autres termes, Hibernate est l'un des frameworks les plus populaires qui implémente JPA. Hibernate implémente JPA via les bibliothèques Hibernate Annotation et EntityManager qui sont implémentées au-dessus des bibliothèques Hibernate Core. EntityManager et Annotations suivent 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 a l'avantage d'avoir une interface standardisée, de sorte que la communauté des développeurs la connaîtra mieux qu'Hibernate. D'autre part, les API Hibernate natives peuvent être considérées comme plus puissantes car leurs fonctionnalités sont un sur-ensemble de celles de JPA.

Conseillé: