Différence entre JPA et Hibernate

Différence entre JPA et Hibernate

Jpa vs hibernate

Presque toutes les applications d'entreprise sont nécessaires pour accéder régulièrement à des bases de données relationnelles. Mais un problème confronté aux technologies antérieures (comme JDBC) était l'inadéquation d'impédance (différence entre les technologies orientées objet et relationnelle). Une solution pour ce problème a été introduite grâce à l'introduction d'une couche abstraite appelée couche de persistance, qui résume l'accès à la base de données à partir de la logique métier. JPA (Java Persistance API) est un cadre dédié à la gestion des données relationnelles (en 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 nouvelle version JPA (JPA 2.0) est entièrement pris en charge par Hibernate 3.5, qui a été publié en mars 2010.

Qu'est-ce que JPA?

JPA est un cadre pour gérer les données relationnelles pour Java. Il peut être utilisé avec des applications en utilisant JSE (Java Platform, Standard Edition) ou JEE (Java Platform, Enterprise Edition). Sa version actuelle est JPA 2.0, qui a été publié le 10 décembre 2009. JPA a remplacé EJB 2.0 et ejb 1.1 Les haricots d'entité (qui ont été fortement critiqués pour être lourds par la communauté des développeurs Java). Bien que les haricots entités (dans EJB) aient fourni des objets de persistance, de nombreux développeurs ont été utilisés pour utiliser des objets relativement légers offerts par DAO (objets d'accès aux données) et d'autres cadres similaires. En conséquence, JPA a été introduit, et il a capturé bon nombre des caractéristiques 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 (plate-forme Java, Enterprise Edition) et métadonnées requises pour les objets relationnels. L'état d'une entité de persistance est généralement persistée dans un tableau. Les cas d'une entité correspondent aux lignes du tableau de la base de données relationnelle. Les métadonnées sont utilisées pour exprimer les relations entre les entités. Les annotations ou les fichiers de descripteur 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, sont utilisées pour interroger les entités stockées.

Qu'est-ce que l'hibernate?

Hibernate est un cadre qui peut être utilisé pour la cartographie relationnelle des objets destinée au langage de programmation Java. Plus précisément, il s'agit d'une bibliothèque ORM (Mappage d'objet-relation. En termes simples, il crée une cartographie entre les classes Java et les tables dans les bases de données relationnelles, également entre les types de données Java vers SQL. Hibernate peut également être utilisé pour la requête et la récupération des données en générant des appels SQL. Par conséquent, le programmeur est soulagé à partir de la gestion manuelle des ensembles de résultats et de la conversion d'objets. Hibernate est publié en tant que cadre gratuit et open source distribué sous licence GNU. Une implémentation pour l'API JPA est fournie dans Hibernate 3.Versions 2 et ultérieures. Gavin King est le fondateur de Hibernate.

Quelle est la différence entre JPA et Hibernate?

JPA est un cadre pour gérer les 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 cadres les plus populaires qui implémente JPA. Hibernate implémente JPA via des bibliothèques Hibernate Annotation and EntityManager qui sont implémentées au-dessus des bibliothèques Hibernate Core. EntityManager et Annotations suivent le cycle de vie de Hibernate. La nouvelle version JPA (JPA 2.0) est entièrement pris en charge par Hibernate 3.5. JPA a l'avantage d'avoir une interface qui est standardisée, donc la communauté des développeurs sera plus familière avec l'hibernate que. D'un autre côté, les API Hibernate indigènes peuvent être considérées comme plus puissantes car ses caractéristiques sont un superset de celle de JPA.