2.
Java Persistence API, más conocida
por sus siglas JPA, es la API de
persistencia desarrollada para la
plataforma Java EE. La cual es un
framework del lenguaje de
programación Java, que maneja datos
relacionales en aplicaciones usando
la plataforma Java en sus ediciones
Standard (Java SE) y Enterprise (Java
EE).
3.
La JPA se origina a partir del trabajo
del JSR 220 Expert Group el cual
correspondía a EJB3. JPA 2.0 sería el
trabajo del JSR 317 y posteriormente
JPA 2.1 en el JSR 338.
Persistencia en este contexto cubre
tres áreas:
- La API en sí misma, definida en el
paquete javax.persistence
- El lenguaje de consulta Java
Persistence Query Language (JPQL).
- Metadatos objeto/relacional.
4.
El objetivo que persigue el diseño
de esta API es no perder las
ventajas de la orientación a objetos
al interactuar con una base de
datos (siguiendo el patrón de
mapeo objeto-relacional), como sí
pasaba con EJB2, y permitir usar
objetos regulares (conocidos como
POJOs).
5.
Java Persistence API, más conocida
por sus siglas JPA, es la API de
persistencia desarrollada para la
plataforma Java EE. La cual es un
framework del lenguaje de
programación Java, que maneja datos
relacionales en aplicaciones usando
la plataforma Java en sus ediciones
Standard (Java SE) y Enterprise (Java
EE).
6. Busca solucionar el problema de la diferencia
entre los dos modelos de datos coexistentes en
una aplicación: el usado en la memoria de la
computadora (orientación a objetos) y el usado en
las bases de datos (modelo relacional). Para lograr
esto permite al desarrollador detallar cómo es su
modelo de datos, qué relaciones existen y qué
forma tienen. Con esta información Hibernate le
permite a la aplicación manipular los datos en la
base de datos operando sobre objetos, con todas
las características de la POO. Hibernate convertirá
los datos entre los tipos utilizados por Java y los
definidos por SQL.
7. Hibernate genera las sentencias SQL y libera
al desarrollador del manejo manual de los
datos que resultan de la ejecución de dichas
sentencias, manteniendo la portabilidad entre
todos los motores de bases de datos con un
ligero incremento en el tiempo de ejecución.
Hibernate está diseñado para ser flexible en
cuanto al esquema de tablas utilizado, para
poder adaptarse a su uso sobre una base de
datos ya existente. También tiene la
funcionalidad de crear la base de datos a
partir de la información disponible.
8. La relación que existe entre JPA e Hibernate,
radica en que este último implementa como
parte de su código la especificación de JPA; es
decir que se puede usar Hibernate para
construir una capa de persistencia apoyándose
en las definiciones y reglas que la
especificación de JPA, aunque esto no sea
obligatorio.
Sin embargo, esto no quiere decir que
Hibernate simplemente implemente el
standard de JPA; Hibernate es mucho más
grande que la especificación de JPA y añade
más funcionalidad.
9. Una de las características más
relevante de Hibernate, es que
soporta la capacidad para trabajar
con bases de datos NoSQL; algo que
JPA no cubre. Este soporte hace que
Hibernate permita trabajar con
bases de datos tipo MongoDB -
orientadas a documentos -, siempre
y cuando se utilice Hibernate de
forma directa y apoyada en las
anotaciones propietarias que utiliza
para soportar este nuevo tipo de
base de datos.
Es importante destacar que
JPA es una parte de la
especificación de EJB 3, es
decir que no es un framework,
sino que es simplemente un
documento en el cual se
especifica los principios
básicos de gestión de la capa
de persistencia en el mundo
de Java EE. En cambio,
Hibernate, si se trata de un
framework que gestiona la
capa de persistencia a través
de ficheros xml o anotaciones.