Question JPA vs ORM vs Hibernate?


J'ai lu à leur sujet grâce à diverses ressources. Les importateurs sont: -

  1. Article Wikipedia sur chacun d'eux
  2. Quelle est la différence entre JPA et Hibernate?

Voici ma compréhension de la différence entre eux. Je ne sais pas si j'ai raison pour JPA vs ORM

  1. ORM: Le mappage relationnel d'objets est un concept / processus de conversion des données d'un langage orienté objet vers un DB relationnel et vice versa Par exemple, en java, cela se fait à l'aide de la réflexion et de jdbc.

  2. Hiberner: C'est la mise en œuvre du concept ci-dessus.

  3. JPA: C'est la seule étape au-dessus de l'ORM. Son API de haut niveau et ses spécifications pour que différents outils ORM puissent implémenter la possibilité pour le développeur de changer l'implémentation d'un ORM à un autre (par exemple, si l'application utilise l'API JPA et l'implémentation est en hibernation. Dans le futur, il peut basculer vers IBatis si nécessaire. Mais de l'autre, si l'application verrouille directement l'implémentation avec Hibernate sans la plate-forme JPA, le changement sera une tâche herculéenne)

Il peut y avoir une implémentation ORM avec / sans spécification JPA. lien sous la section d'hibernation seulement Les versions 3.2 et ultérieures d'Hibernate fournissent une implémentation pour l'API Java Persistence


32
2017-12-13 18:25


origine


Réponses:


  1. ORM est l'approche consistant à prendre des données orientées objet et à les mapper à un magasin de données relationnel (par exemple, un SGBDR).

  2. Hibernate est une implémentation d'un cadre ORM

  3. JPA est la spécification standard EE pour ORM en Java EE. Hibernate est également une implémentation de cette spécification, dans la mesure où vous pouvez utiliser les API JPA standard et configurer votre application pour utiliser Hibernate en tant que fournisseur de la spécification sous les couvertures.

Les fonctionnalités fournies par Hibernate sont également un sur-ensemble des fonctionnalités ORM spécifiées dans la spécification JPA. Cela signifie que même s'il fournit une implémentation de l'API JPA, il fournit également plus de fonctionnalités que celles spécifiées par JPA.


22
2017-10-13 00:13



La seule erreur que vous avez semblé faire dans votre compréhension est

C'est la première étape au-dessus de l'ORM

Une note rapide, Les bibliothèques commençant par javax.persistence sont associées à JPA. Vous devriez préférer ces bibliothèques sur Hibernate autant que possible. Parce que ce sont des portables. Cependant, vous obtiendrez des fonctionnalités supplémentaires dans Hibernate, et dans ces cas précis, n'hésitez pas à utiliser Hibernate.


1
2017-09-01 17:37



http://ormlite.com/sqlite_java_android_orm.shtml

Object Relational Mapping Lite (ORM Lite) fournit des fonctionnalités légères pour la persistance des objets Java sur les bases de données SQL, tout en évitant la complexité et la surcharge des packages ORM standard. Il prend en charge un certain nombre de bases de données SQL à l'aide de JDBC et prend également en charge Sqlite avec des appels natifs aux API de base de données du système d'exploitation Android.


1
2018-03-28 08:57



JPA est une interface, tandis que Hibernate est sa réalisation. Les annotations JPA 2 sont des règles Code contre une interface, et non une implémentation. JPA n'est que des lignes directrices pour implémenter le mappage relationnel objet (ORM) et il n'y a pas de code sous-jacent pour l'implémentation. Hibernate est la mise en œuvre effective des directives JPA.


0
2017-07-11 19:47