Pregunta JPA vs ORM vs Hibernate?


He leído sobre ellos a través de varios recursos. Importantes son:

  1. Artículo de Wikipedia sobre cada uno de ellos
  2. ¿Cuál es la diferencia entre JPA e Hibernate?

Aquí está mi entendimiento sobre cuál es la diferencia b / w ellos. No estoy seguro de si estoy en lo cierto acerca de JPA vs ORM

  1. ORM: El mapeo relacional de objetos es el concepto / proceso de convertir los datos del lenguaje orientado a objetos a DB relacional y viceversa Por ejemplo, en java se hace con la ayuda de reflection y jdbc.

  2. Hibernar: Es la implementación del concepto anterior.

  3. JPA: Es el paso por encima de ORM. Su alto nivel API y especificación para que las diferentes herramientas ORM puedan implementarse de modo que proporcione la flexibilidad del desarrollador para cambiar la implementación de un ORM a otro (por ejemplo, si la aplicación usa la API e implementación JPA) está hibernate En el futuro, puede cambiar a IBatis si es necesario. Pero por otro lado, si la aplicación bloquea directamente la implementación con Hibernate sin plataforma JPA, el cambio será una tarea hercúlea)

Puede haber implementación ORM con / sin especificación JPA. Por ejemplo, según este enlazar solo en la sección de hibernación Las versiones de Hibernate 3.2 y posteriores proporcionan una implementación para la API de Java Persistence


32
2017-12-13 18:25


origen


Respuestas:


  1. ORM es el enfoque de tomar datos orientados a objetos y mapeo a un almacén de datos relacional (por ejemplo, un RDBMS)

  2. Hibernate es una implementación de un marco ORM

  3. JPA es la especificación estándar EE para ORM en Java EE. Hibernate también es una implementación de esta especificación, en la que puede usar las API JPA estándar y configurar su aplicación para usar Hibernate como proveedor de las especificaciones debajo de las cubiertas.

Las características que proporciona Hibernate también son un superconjunto de las características ORM especificadas en la especificación JPA. Lo que significa que, si bien proporciona una implementación de la API api, también proporciona más características más allá de lo que especifica JPA.


22
2017-10-13 00:13



El único error que parecías hacer en tu comprensión es

Es el paso por encima de ORM

Una nota rápida: las bibliotecas que comienzan con javax.persistence están asociadas con JPA. Deberías preferir estos sobre las bibliotecas de Hibernate siempre que sea posible. Porque estos son portátiles. Sin embargo, obtendrá algunas características adicionales en Hibernate, y en esos casos precisos, no dude en utilizar Hibernate.


1
2017-09-01 17:37



http://ormlite.com/sqlite_java_android_orm.shtml

Object Relational Mapping Lite (ORM Lite) proporciona algunas funcionalidades livianas para objetos persistentes de Java en bases de datos SQL, al tiempo que evita la complejidad y la sobrecarga de paquetes de ORM más estándar. Admite varias bases de datos SQL mediante JDBC y también admite Sqlite con llamadas nativas a las API de bases de datos del sistema operativo Android.


1
2018-03-28 08:57



JPA es una interfaz, mientras que Hibernate es su realización. Las anotaciones de JPA 2 son código de regla frente a una interfaz, no se aplica una implementación. JPA es solo una guía para implementar el mapeo relacional de objetos (ORM) y no hay un código subyacente para la implementación. Hibernate es la implementación real de las pautas JPA.


0
2017-07-11 19:47