Java Persistence API (JPA) proporciona un estándar para gestionar datos relacionales en aplicaciones Java SE o Java EE que simplifica el desarrollo de la persistencia de datos.
En su definición, se han combinado ideas y conceptos de los principales framework de persistencia, como Hibernate, Toplink y JDO (Java Data Objects), y versiones anteriores de EJB.
JPA permite la persistencia no solo en bases de datos, sino también en otras estructuras como archivos de texto, planos y XML.
El framework esta divido en 3 áreas:
- El API de persistencia.
- El lenguaje de consulta JPQL Java Persistence Query Language (JPQL).
- El mapeo de los metadatos objeto/relacional.
Entre las características más importantes de este framework están las siguientes:
- Manejo de transacciones atómicas.
- Utilización de clases POJO: una de las características más importantes de JPA es el hecho de que las entidades persistentes son clases POJO, lo que significa que no hay nada en particular que haga que un objeto pueda ser persistente ya que el mapeo objeto relacional está basado completamente en metadatos utilizando anotaciones o definido externamente usando XML (Extensible Markup Language).
- No intrusiva: el API de persistencia existe en una capa separada de los objetos persistentes. Dicho de otra forma el API no se entromete en el código del los objetos de las clases persistentes.
- Lenguaje de consultas: JPA ofrece un potente lenguaje de consultas llamado JPQL el cual que ofrece la capacidad de hacer consultas entre las entidades persistentes y es independiente de la base de datos que se utilice ya que es el framework como tal el que se encarga de construir las consultas SQL para su ejecución.
- Entidades movibles: las entidades persistentes que maneja JPA tienen la característica de poder moverse por la red desde una máquina a otra desconectándose al salir de la capa de negocio lo cual permite hacer cambios sobre las mismas en otras capas manteniendo la consistencia.
- Testeabilidad: ya que JPA puede ser usada en un entorno JSE (Java Standard Edition) se puede usar en pruebas unitarias junto con cualquier framework fuera del servidor de aplicaciones.
No hay comentarios :
Publicar un comentario