Está en la página 1de 11

2.

Persistencia JAVA
ORM(mapeo objeto relacional), Herramientas de Mapeo bidireccional (hibernate, JPA api de java de persistencia incluido en JEE6) JPA 2.0 permite unir orientacin a objetos a modelos relacionales, api usada para acceder a la manipulacin de datos relacionales desde Java Enterprise beans, desde componentes web.

JPA es una abstraccin que se ubica sobre JDBC y que permite ser independiente de la sintaxis SQL propia de cada motor de base de datos, esta dentro del paquete javax.persistence

Tarea de JPA, crear una correspondencia entre los objetos y las tablas Componentes JPA:

ORM: Mecanismo utilizado para mapear los datos, para asignar objetos a los datos almacenados en una base de datos relacional. EntityManager: Api encargada de ejecutar operaciones crud, en la base de datos relacional, api encargada de administrar las entidades. JPQL:Java persistence query language (Lenguaje java para consultas de persistencia), lenguaje que nos permite recuperar datos como un lenguaje de consulta orientado a objetos. JTA: java transaction API, API para transacciones y mecanismos de bloqueo cuando accedemos a datos de modo concurrente.

Otros conceptos de JEE6


Entities: Se utiliza este concepto en ves del termino objeto, los objetos son instancias que solo viven en la memoria, mientras que las entidades son objetos que viven muy poco tiempo en la memoria, pero de modo persistente en la base de datos, estas entidades cuentan con unas capacidades.

Mapping: Pueden ser mapedas, es decir asignadas a una tabla de la base de datos. Pueden ser concretas o abstractas, pueden soportar herencia.

Las entidades asignadas son manjedas por JPA, y podemos realizar sobre ellas las operaciones bsicas de una tabla de la base de datos, utlizando el lenguaje JPQL

El orm es el que nos permite manipular entidades cuando se accede a la base de datos y lo hace por medio de un framework en este caso es JPA.

Como JPA hace para mapear objetos a una base de datos?

Lo hace a travs de metadatos, cada entidad tiene asignados los metadatos que describen el mapeado. Esto metadatos pueden ser escritos en dos formas:

1. Usando anotaciones en el Cdigo fuente, estas anotaciones estn en el paquete javax. Persistence. 2. Escribiendo descriptores XML

Adems JPA cuenta con un mecanismo de reglas de mapeado por defecto, el nombre de la tabla es el mismo de la entidad, estas reglas tambin se pueden personalizar utilizando los metadatos

Ejemplo de un entity:

Para que una clase Java sea reconocida como una entidad debe ser anotada con la anotacin @Entinty. @Id, es usada para anotar la clave o llave primaria de una entidad . @GeneratedValue, con esta anotacin indicamos que la llave primaria va a ser autu incremental y generada por el motor de base de datos. @Column, con esta anotacin podemos indicar si la columna o el atributo es requerido, tambin podemos indicar la longitud del campo. En la siguiente imagen observamos el mapeo entre tabla y clases.

JPA permite asignar entidades a tablas de la base de datos, pero tambin nos permite hacer consultas a estas entidades y a sus relaciones con otras entidades, pero de un modo orientado a objetos, sintener que utilizar claves externas, lo cual simplifica mucho el proceso. La clase principal del api JPA es el entityManager, esta es una interface, ya que es la encargada de orquesta es decir la que maneja las entidades y permitir las operaciones crud u operaciones ms complejas utilizando JPQL. Ejemplo: Para persistir la entidad book

La interfaz EntitiyManger oculta el llamado JDBC a la base de datos y la sintaxis SQL de consulta, ya que las consultas a las entidades se hacen utilizando JPQL. Interacta con las entidades y la base de datos. JPQL: (Lenguaje de consulta usado por el api JPA), utiliza una sintaxis familiar de java objeto. Mtodos o atributos.

Estas consultas pueden ser dinmicas es decir en tiempo de ejecucin o estticas en tiempo de compilacin

Ciclo de vida de una entidad: Las entities son POJOS, es decir clases simples de java, independientes de cualquier plataforma, si son manejadas por el entityManager, son una entidad persistente y si cambia su estado son

sincronizadas con la base de datos, pero si no son mapedas, es decir sin son desconectadas pueden ser manejadas como una clase simple de java

Operaciones que pueden realizar las Entities:

Creacin

de

entidades

JPA