CJava 2015
Architect
Expert
Developer
Mobile
Programmer
Av. Arenales 395 Oficina 403 405 / 43376948 3327162 / info@cjavaperu.com
Temas:
Introduccin a
ORM
Gustavo Coronel
gcoronel@cjavaperu.com
La data vive en el base de datos relacional, la cual es manejado por tablas(con registros
y columnas).
BD
Relacional
Modelo de
Clases
Hibernate
Edwin Maravi
emaravi@cjavaperu.com
Objetivos
Al final de la sesin usted aprender:
Qu es Hibernate?
Es un ORM(Object Relational Mapping) para habilitar la persistencia de
POJOs.
Te permite trabajar sin verte limitado por el modelo de datos relacional. Lo que
busca es crear una base de datos orientada a objetos.
Asociacin.
Herencia.
Polimorfismo.
Composicin.
Collection API para many relationship
Recordando JDBC
Mtodo para
obtener un
listado de
recetas:
Evolucin
Se ve mucho mejor
Criteria API
Query By Example (QBE)
Hibernate Query Language (HQL)
Native SQL
Arquitectura de Hibernate
Arquitectura de Hibernate
Mapeos Hibernate
Edwin Maravi
emaravi@cjavaperu.com
Objetivos
Al final de la sesin usted aprender:
Cmo representar las relaciones de una base de datos
relacional en un modelo de clases con hibernate.
Many To One
One To Many
Many To Many
Temas
Mapeo para relaciones de Cardinalidad
One-To-Many
Many-To-One
Many-To-Many
One-To-One
Mapeo para relaciones de Herencia
Una sola tabla para toda la jerarqua de clases
Una tabla para cada subclase.
Una tabla por cada una de las clases del modelo.
Av. Arenales 395 Oficina 403 405 / 43376948 3327162 / info@cjavaperu.com
many-to-one
one-to-many
many-to-many
one-to-one
Relacin:
Many-to-One
Many-To-One
BD
Relacional
Modelo de
Clases
De un conjunto de muchas
compaas solo una es donde
trabaja un cliente.
Many-To-One
Archivo de mapeo
De un conjunto de muchas compaas solo una es donde trabaja un cliente.
Relacin:
One-To-Many
One-To-Many Relationship
1.<set>
2.<list>
3.<array>
4.<bag>
Relacin:
One-To-Many:
Usando <set>
1. One-to-Many :
Usando <set> en el archivo de mapeo
Un evento tiene muchos expositores y oyentes
Event.hbm.xml :
>
One to Many:
Usando Set en la Clase de Dominio
Un evento tiene muchos expositores y oyentes
One to Many:
Creando Objeto de Instancia
Relacin:
One-To-Many:
Usando <list>
2. One to Many:
Usando <list> en archivo de mapeo
Un Grupo tiene muchas historias
Group.hbm.xml
One to Many :
Usando List en la clase de Dominio
Grupo(Group) tiene muchas historias(stories)
One to Many:
Creando Objetos de Instancia
One to Many :
Resultado despus de grabar
Tables
Relacin:
One-To-Many:
Using <array>
3. One to Many:
Usando <array> en archivo de mapeo
Group tiene muchas stories
Group.hbm.xml
One to Many :
Usando un array en Clase de Dominio
Group tiene muchas stories
One to Many :
Usando un array en Clase de Dominio
Group tiene muchas stories
One to Many:
Creando un Objeto de Instancia
Group has many stories
Relacin:
One-To-Many:
Usando <bag>
4. One to Many:
Usando <bag> en archivo de mapeo
One to Many:
Usando un List en Clase de Dominio
Group tiene muchos stories
One to Many :
Creando un Objeto de Instancia
Group tiene muchos stories
Relacin:
Many-To-Many
Many to Many
Los Ponentes(Speakes) exponen en muchos Eventos(Events) y Un Evento(Event) tiene
muchos Ponentes(Speaker)
SpeakerManyToMany.hbm.xml
Many to Many
Un Evento tiene muchos Ponentes y Los Ponentes exponen en muchos Eventos
EventManyToMany.hbm.xml
>
Many to Many:
Clase de Dominio
Event tiene muchos speakers
Many to Many:
Clase de Dominio
Many to Many:
Creando objetos de instancia
Event tiene relacin de muchos a muchos con Speaker
Many to Many
Resultado en Tablas
Relacin:
Usando <map>
One-Has-Collection:
Usando <map> en el archivo de mapeo
One-Has-Collection :
Clase de Dominio
One-Has-Collection :
Creando Objetos de Instancia
Mapping Inheritance
(Mapeos Basados en Herencia):
3 Maneras Diferentes
3 maneras diferentes
Una tabla por jerarqua de clases.
Una tabla por cada subclase.
Una tabla por cada clase concreta.
Mapping Inheritance:
1 Tabla para toda una
Jerarqua de clases
Problema: Tenemos una sola tabla book, pero en nuestro modelo de dominio
contamos con 3 clases: Book, SpecialEditionBook e InternationalBook. Estas dos
ltimas clases extienden de Book
Av. Arenales 395 Oficina 403 405 / 43376948 3327162 / info@cjavaperu.com
Mapping Inheritance:
1 Tabla por SubClase
Mapping Inheritance:
1 Tabla para una
Concreta Clase
Av. Arenales 395 Oficina 403 405 / 43376948 3327162 / info@cjavaperu.com
Gracias