JPA

JPA

Java Persistence API (JPA) es un framework de Java (SE y EE) que maneja datos relacionales. Su función es aprovechar las ventajas de la programación orientada a objetos y las bases de datos relacionales y permitir usar objetos regulares (POJOS).

ORM

Object Relational Mapping (Mapeo objeto-relacional) facilita la interacción entre un lenguaje de programación orientado a objetos y una base de datos relacional. Su función es convertir las relaciones de la base de datos en clases que pueden ser utilizados en el lenguaje POO. 

Un ORM nos facilita las tareas básicas realizadas en una base de datos, un CRUD (Create, Read, Update, Delete). En los ORM de Java se usa un lenguaje llamado JPQL (Java Persistence Query Language).

Aunque el lenguaje utilizado para la gestión de las bases de datos ha sido SQL, hay varias diferencias entre los distintos Sistemas Gestores de Bases de Datos, por ejemplo, en la forma de hacer las consultas existen usualmente algunas diferencias. El ORM es una "capa intermedia" entre la base de datos relacional y el lenguaje POO, lo que permite abstraer al programador de la base de datos (no importando qué SGBD se use) y centrarse en el desarrollo de la aplicación. Esto nos sería de mucha utilidad si migraramos una base de datos a otro SGBD.

Uno de los ORM más utilizados en Java es Hibernate.

Entidad de Persistencia en JPA

Una entidad es algo que puede tener atributos y relaciones. En POO,  si quisieramos darle un comportamiento a una entidad esta se convierte automáticamente en un objeto. Por lo que en JPA, cualquier objeto definido por la aplicación pueder ser una entidad.

Una entidad de persistencia es una clase de Java ligera, cuyo estado es persistido de manera asociada a una tabla en una base de datos relacional. Las instancias de estas entidades corresponden a un registro (conjunto de datos representados en una fila) en la tabla. 


Relaciones entre Entidades en JPA

Normalmente las entidades están relacionadas a otras entidades, y estas relaciones son expresadas a través de meta datos objeto/relacional. Los meta datos del objeto/relacional pueden ser especificados directamente en el fichero de la clase, usando las anotaciones de Java (annotations), o en un documento descriptivo XML, el cual es distribuido junto con la aplicación.








Comentarios

Entradas populares