JPA - Introducción
Cualquier aplicación empresarial realiza operaciones de base de datos almacenando y recuperando grandes cantidades de datos. A pesar de todas las tecnologías disponibles para la gestión del almacenamiento, los desarrolladores de aplicaciones normalmente luchan por realizar las operaciones de la base de datos de manera eficiente.
Generalmente, los desarrolladores de Java usan mucho código, o usan el marco propietario para interactuar con la base de datos, mientras que al usar JPA, la carga de interactuar con la base de datos se reduce significativamente. Forma un puente entre los modelos de objetos (programa Java) y los modelos relacionales (programa de base de datos).
Discordancias entre modelos relacionales y de objetos
Los objetos relacionales se representan en un formato tabular, mientras que los modelos de objetos se representan en un gráfico interconectado de formato de objeto. Al almacenar y recuperar un modelo de objetos de una base de datos relacional, se producen algunas discrepancias debido a las siguientes razones:
Granularity : El modelo de objetos tiene más granularidad que el modelo relacional.
Subtypes : Los subtipos (significa herencia) no son compatibles con todos los tipos de bases de datos relacionales.
Identity : Al igual que el modelo de objetos, el modelo relacional no expone la identidad al escribir igualdad.
Associations : Los modelos relacionales no pueden determinar múltiples relaciones mientras miran un modelo de dominio de objetos.
Data navigation : La navegación de datos entre objetos en una red de objetos es diferente en ambos modelos.
¿Qué es JPA?
La API de persistencia de Java es una colección de clases y métodos para almacenar de forma persistente grandes cantidades de datos en una base de datos proporcionada por Oracle Corporation.
¿Dónde usar JPA?
Para reducir la carga de escribir códigos para la gestión de objetos relacionales, un programador sigue el marco 'JPA Provider', que permite una fácil interacción con la instancia de la base de datos. Aquí, el marco requerido es asumido por JPA.
Historia de JPA
Versiones anteriores de EJB, capa de persistencia definida combinada con capa de lógica empresarial usando la interfaz javax.ejb.EntityBean.
Al presentar EJB 3.0, la capa de persistencia se separó y se especificó como JPA 1.0 (API de persistencia de Java). Las especificaciones de esta API se publicaron junto con las especificaciones de JAVA EE5 el 11 de mayo de 2006 utilizando JSR 220.
JPA 2.0 se lanzó con las especificaciones de JAVA EE6 el 10 de diciembre de 2009 como parte de Java Community Process JSR 317.
JPA 2.1 se lanzó con la especificación de JAVA EE7 el 22 de abril de 2013 utilizando JSR 338.
Proveedores de JPA
JPA es una API de código abierto, por lo tanto, varios proveedores empresariales como Oracle, Redhat, Eclipse, etc. proporcionan nuevos productos al agregarles el sabor de persistencia JPA. Algunos de estos productos incluyen:
Hibernate, Eclipselink, Toplink, Spring Data JPA, etc.