Está en la página 1de 21

Mapeo Objeto Relacional

JPA Java Persistence Api

Agenda

Mapeo Objeto relacional


Persistencia
Entidades
Principales
anotaciones
para
mapear
entidades
Anotaciones para definir las relaciones entre
las entidades
Caso de estudio

Object-Relational Mapping (Mapeo Objeto


Relacional)
Es una tcnica en la que se las tablas,
columnas y relaciones de una base de datos se
convierten a clases, atributos y tipos de datos
de un lenguaje de programacin orientado a
objetos, creando una base de datos virtual.

Object-Relational Mapping (Mapeo Objeto


Relacional)
Esto nos permiten trabajar con objetos, en vez
de tablas y columnas, donde un registro en
una tabla se representa por una instancia de la
entidad.
Este
mapeo
permite
generar
automticamente el cdigo SQL necesario
para consultar y actualizar la base de datos.

Object-Relational Mapping (Mapeo Objeto


Relacional)
Mayor independencia entre la aplicacin y el
motor de la Base de Datos.
Facilita el manejar tipos de datos del lenguaje
de programacin y la Base de Datos.

Persistencia
La persistencia permite al programador
almacenar, transferir y recuperar informacin
entre los objetos y las Bases de Datos, segn
el mapeo creado.
Utiliza un motor que busca solucionar la
diferencia entre los modelos de manipulacin
de datos del Lenguaje de Programacin y el
manejador
de Base de Datos. Por ejem.
Hibernate.

Java Persistence API (API de Persistencia De


Java)
Provee el mapeo entre el mundo de objetos /
relacional para los desarrolladores Java; sirve
para
manejar
datos
relacionales
en
aplicaciones Java. Se divide en tres reas:
El Api de persistencia de Java
El JPQL: lenguaje de consulta
Objeto / Relacional metadata de mapeo.

Entidades
Es un objeto de dominio que tiene persistencia
en la base de datos. Tpicamente una Entidad
representa una tabla; cada instancia de la
entidad corresponde a un registro en la tabla.
Es representada por medio de campos de
persistencia o por propiedades de persistencia.
Estos campos o propiedades usan anotaciones
para representar las entidades o relaciones
entre entidades, con los datos relacionales en
la base de datos.

Anotaciones de definicin de Entidades


Anotaci
n

Clase

Explicacin

@Entity

javax.persistence.Entity

Define una clase como entidad.

@Table

javax.persistence.Table

Define la tabla que va a ser


mapeada.

Anotaciones de definicin de Datos de


Entidades
Anotacin

Clase

Explicacin

@Id

javax.persistence.Id

Denota el campo que ser el


identificador nico para la entidad.

@Column

javax.persistence.Column

Define el mapeo entre una columna


de la tabla con un atributo o
propiedad de la entidad.

@NotNull

org.hibernate.validator.Not
Null

Denota que un campo debe ser


obligatorio.

@Temporal

javax.persistence.Temporal

Especifica el tipo del atributo como un


java.util.Date o java.util.Calendar, se
utiliza para definir un campo como
fecha corta, o tipo Time.

@Transient

javax.persistence.Transient

Marca un campo o propiedad como no


persistente.

@Embedded

javax.persistence.Embedde Especifica que un campo de


d
persistencia de una entidad o una
propiedad es una clase embebida.

@Embeddab

javax.persistence.Embedda Define una clase como embebida, es

Anotaciones de definicin de relaciones entre Entidades


@ManyToOne: Define la relacin de Muchos a
Uno. Mltiples instancias de una entidad se
relacionan con una instancia simple de otra
entidad. Usa: javax.persistence.ManyToOne.
@ManyToMany: Establece la relacin de
Muchos a Muchos. Las instancias de la entidad
pueden
estar
relacionadas
con
varias
instancias
de
otra
entidad.
Usa:
javax.persistence.ManyToMany.

Anotaciones de definicin de relaciones entre Entidades


@OneToOne: Define la relacin de Uno a Uno.
Cada entidad se relaciona con una sola
instancia
de
la
otra
entidad.
Usa:
javax.persistence.OneToOne.
@OneToMany: Define la relacin de Uno a
Muchos. Una entidad est relacionada con
mltiples instancias de otra entidad. Usa:
javax.persistence.OneToMany.

Anotaciones de definicin de relaciones entre Entidades


@JoinColumn: Denota el nombre de la
columna de la tabla a la cual es mapeada la
entidad, y con la cual se establece la relacin.
Usa: javax.persistence.JoinColumn.
@JoinColumns: Define el mapeo de la
columna con la entidad por medio de llaves
compuestas.
Usa:
javax.persistence.JoinColumns.

Tipos de Cargas de Entidades


LAZY: esto quiere decir que no realiza
consulta del atributo relacionado, cuando
instancia la entidad sino cuando se hace
llamado al mtodo get correspondiente
atributo.

la
se
el
al

EAGER:
Al
instanciar
la
entidad
inmediatamente se realiza la consulta del
atributo relacionado.

Mapeo de Entidad con llave compuesta


Cuando se necesita mapear una tabla en la
cual su llave principal son dos o mas atributos
es necesario crear otra clase con estos
atributos.
En la clase de llave compuesta se utiliza la
anotacin @Embeddable.
En la entidad se crea como atributo una
instancia de la clase anterior y se debe colocar
la anotacin: @EmbeddedId.

Pasos para mapear una Tabla


Ubicar el directorio correspondiente donde se
guardar la entidad teniendo en cuanta la
convencin de definicin de paquetes.
Los nombres de las clases deben iniciar
siempre en mayscula, deben ser simples y
descriptivos.
Los nombres de las clases de Entidad deben
ser sustantivos en singular.

Pasos para mapear una Tabla


Posicionar encima de la definicin de la Clase,
las anotaciones de Entidad como: @Entity,
@Table.

Caso de Estudio
Se requiere elaborar una aplicacin para llevar
el registro y control de los elementos y
materiales de laboratorio que se le prestan a
los estudiantes o docentes, estos elementos
pueden ser fuentes de poder, voltmetros y
diferentes dispositivos electrnicos.
Un auxiliar es el encargado de prestar los
elementos y registrar los datos de salida y
entrada de los elementos, tambien se requiere
llevar el controlo de las materias en las cuales
se utiliza el elemento.

Caso de estudio Diagrama Entidad Relacin

Tipo_equipo
id
nombre

equipo
id
modelo
fecha_ingreso
descripcion
marca
serie
id_estado
Disponible
Id_tipo_equipo

N
1

Historico_presta
mo
Id
tag_equipo
id_usuario
fecha_salida
Hora_salida
fecha_entrada
Hora_entrada
id_salon
id_estadorecibid
o
Observaciones
id_materia
Id_usuario_auxili

1
N
N

1
N

1
estado
id
nombre

usuario
Id_usuario
nombre
apellido
id_rol
password

facultad
id
Nombre

facultad_usuari
o
Id_facultad
Id_usuario
rol
id
nombre

N
1
N
N

salon
id
nombre

Materia
id
Nombre
Id_facultad

Conexin a la Base de datos


Host: sandbox2.ufps.edu.co
Usuario: userJee6
Password: userJee6

Gracias por su atencin

M.Sc. FREDY H. VERA R


freve9@gmail.com
Ccuta - 2013

También podría gustarte