JPA¶
Introducción¶
JPA (Java Persistence API) es un framework ligero, basado en POJO, para la persistencia en Java. Conecta los modelos de dominio orientado a objetos y los sistemas de bases de datos relacionales. JPA no es un producto, sino una especificación.
JPA consta de cuatro áreas:
- Java Persistence API
- Java Persistence Criteria API
- Lenguaje de consultas
- Metadatos de mapeo objeto-relacional.
Las dos soluciones más populares de persistencia JPA son Oracle TopLink en la esfera comercial, e Hibernate en la comunidad de código abierto.
Entidades¶
Una entidad es la representación en Java de una tabla de la base de datos, con características como persistencia, identidad, transaccionalidad y granularidad.
Las entidades son cosas que tienen atributos y relaciones. Estos atributos y relaciones deben ser persistentes en la base de datos.
Esencialmente, una entidad es un sustantivo, o un grupo de estados que juntos forman una única unidad. Puede participar en relaciones con otras entidades. En el paradigma de orientación a objetos se les añade un entorno llamándolas objeto.
Metadatos¶
Además de su estado persistente, cada entidad JPA tiene asociados alguunos metadatos que la describen.
Los metadatos de la entidad se pueden especificar mediante anotaciones o XML.
Se utiliza configuración por excepción, lo que significa que el motor de persistencia define por defecto los valores, y solo es necesario indicar un valor explícitamente cuando sea una excepción a la norma.
Consultas¶
En JPA una consulta es similar a una consulta de base de datos, pero en lugar de utilizar SQL usa un lenguaje llamado JP QL (Java Persistence Query Language).
Ejemplo:
TypedQuery<Empleado> query = em.createQuery("SELECT e FROM Empleado e", Empleado.class);
List<Empleado> emps = query.getResultList();