Orm

Post on 05-Apr-2017

33 views 0 download

Transcript of Orm

Joan Sebastián Ramírez Pérez

Mapeo Objeto Relacional 2017

Agenda

❖ ¿Qué es un ORM?❖ Ventajas❖ JPA❖ Spring Data❖ Bibliografía

¿Qué es un ORM?❖ ORM es Object Relational Mapping❖ Modelo de programación que nos permite

transformar las relaciones (tablas de base de datos) en una serie de entidades (objetos), simplificando el acceso a los datos persistentes para el programador.

❖ Se aplica a la capa de persistencia de las aplicaciones.

Ventajas❖ Reduce la cantidad de código, con esto se

aumenta la velocidad de desarrollo❖ Portabilidad.❖ Tratar las relaciones como objetos permite

hablar en un solo lenguaje desde la aplicación.❖ Abstracción de la base de datos usada.❖ Cumplimiento patrón Domain Model

JPA❖ Java Persistence API❖ API de persistencia Java que se desarrollo para

el estándar EJB 3.0.❖ JPA establece una interface común que es

implementada por un proveedor de persistencia de nuestra elección (TopLink, EclipseLink, Hibernate, entre otros).

❖ Provee una especificación genérica para un ORM en Java EE y Java SE.

Historia❖ ORM de otros distribuidores:

❖ iBATIS 2001❖ Hibernate 2001❖ JDO (Java Data Object) usando JR 12 en 2002

❖ JPA 1.0: se introduce en mayo 2006 y usa el estándar JSR 220. Java EE 5.

❖ JPA 2.0: lanzado en diciembre 2009 y trabaja con el estándar JSR 317. Java EE 6.

❖ JPA 2.1: lanzado en abril 2013 y trabaja con el estándar JSR 338. Java EE 7.

Implementaciones

Vocabulario requerido

POJO

❖ Plain Old Java Object

Entidad

❖ Objeto que va a representar una de las entidades de la base de datos.

❖ Son simples POJOS que pueden tener atributos persistimos y no persistidos.

❖ Tienen que ser serializables.

JPQL

❖ Java Persistence Query Language

❖ Lenguaje usado para realizar peticiones a la base de datos.

Named Query

❖ Consultas JPQL

Native Query

❖ Consultas en el lenguaje nativo del motor de base de datos que es traducido a objetos

Entity Manager❖ Objeto liviano que nos provee la

interface para la gestión de las entidades.

❖ Una instancia EntityManager está asociado con un contexto de persistencia. Un contexto de persistencia es un conjunto de instancias de entidad en la que para cada entidad persistente hay una instancia de entidad única. Dentro del contexto de persistencia, las instancias de la entidad y de su ciclo de vida se gestionan.

❖ La API EntityManager se utiliza para crear y eliminar instancias persistentes, para encontrar entidades por su clave primaria, y para hacer consultas sobre las entidades.

Entity Manager Factory❖ Objeto pesado que debe

abrirse y cerrarse en cada inicio de la aplicación. Uno por aplicación.

❖ Es único y permite gestionar todas las entidades .Si tenemos varias conexiones a base de datos deberemos definir un nuevo concepto que nos permite clarificar que tenemos dos EntityManagerFactories distintos. Este concepto es el que se conoce como PersistenceUnit.

Persistence Unit

❖ Define el conjunto de clases que serán gestionadas por las instancias del EntityManager en una aplicación.

❖ Este conjunto de clases representa los dates que serán contenidos en un único espacio de almacenamiento.

Operaciones CRUD

❖ Crear: entityManager.persist(entity);❖ Consultar:

entityManager.persist.find(entity.class, value);❖ Actualizar: entityManager.persist.merge(entity);❖ Eliminar: entityManager.persist.remove(entity);

Tutorial

❖ http://docs.oracle.com/javaee/6/tutorial/doc/bnbpy.html

Spring Data❖ Módulo de Spring que a su

vez engloba un gran número de sub-módulos cuyo objetivo es facilitar el acceso y explotación de datos en aplicaciones basadas en Spring, obteniéndose estos datos de fuentes tan dispares como servicios RestFUL, bases de datos relacionales a través de JPA, o bases de datos NoSQL como MongoDB o Neo4J, entre otras

Tomado de: http://projects.spring.io/spring-data/

Tomado de: http://projects.spring.io/spring-data/