Mapeo de Clases

Páginas: 12 (2885 palabras) Publicado: 13 de octubre de 2013
Mapeo de clases
Sistemas de persistencia de
objetos

Entidades
Un entidad representa un concepto del
dominio
Puede estar asociada con otras
entidades
Su ciclo de vida es independiente
Debe tener una clave primaria

nov-08

alb@uniovi.es

2

Value Types
Representan información adicional, no
conceptos principales de dominio
Se suelen presentar como atributos de
una entidado como composiciones
(UML)
Su ciclo de vida depende enteramente
de la entidad que las posee
No pueden tener referencias entrantes
nov-08

alb@uniovi.es

3

VT, no referencias entrantes

No es posible

nov-08

alb@uniovi.es

4

Representación UML de VT

equivalentes

nov-08

alb@uniovi.es

5

Representación en Java

nov-08

alb@uniovi.es

6

Paso de ValueTypes
Siempre por copia
En java por defecto se pasan referencias
Problemas al recibir en setters
Cuidado con los getters

Alternativa: inmutables
Las clases básicas del JDK
String, Integer, Long, Double, etc

nov-08

alb@uniovi.es

7

Cuidado en getters

Peligro!!!
Seguro, String es inmutable
Peligro!!!

nov-08

alb@uniovi.es

8

Getters pueden romper
encapsulaciónnov-08

alb@uniovi.es

9

POJO (plain old java objects)
Las clases que necesitan ser persistentes son
clases java planas (java beans)
Tienen que respetar un mínimo convenio de
nombrado
Setters/getters, constructor sin parámetros, etc.

La información necesaria para persistencia se
añade en forma de metadatos
Hibernate nativo
xml, hibernate annotations
JPA
annotations, xmlnov-08

alb@uniovi.es

10

POJO Ejemplo (entidad)

nov-08

alb@uniovi.es

11

POJO Ejemplo (entidad)

nov-08

alb@uniovi.es

12

POJO Ejemplo (Value Object)
No lleva @Id
Tipo de acceso (field,
property) igual al de la
clase que lo incluye

nov-08

alb@uniovi.es

13

POJOs JPA
Constructor sin parámetros obligatorio
Identificador
Preferiblemente no tiposbásicos (int, long, etc.), mejor tipos
nullables (Integer, Long, etc.)
Mejor no claves compuestas
Se corresponderán con la clave primaria de la tabla

Getters y Setters (get/set/is) para cada atributo
pueden ser privados
JPA puede usar los setters al cargar un objeto para ajustar
sus atributos

Colecciones para asociaciones many
Puede ser Set, List, Map o Collection
Setters y getterspueden ser privados
nov-08

alb@uniovi.es

14

Persistencia de campos en JPA
Todos tipos JDK tienen persistencia
automática
Campos de otro tipo:
Referencias a ValueTypes: si son de clases
@Embeddable todos los campos a la misma
tabla
Referencias a Entidades: son relaciones, no
campos. FK a la tabla de @Entity
Resto de casos, serialización
Debe implementar Serializable

nov-08alb@uniovi.es

15

Metadatos en annotations
@Entity
entidades
@Embeddable
Value Types
La posición de @Id determina el modo
de acceso del motor de persistencia a
los atributos
Acceso “field” (public, private, protected, package)
Acceso “properties” (a través de get/set)
getters y setters public o protected
nov-08

alb@uniovi.es

16

Metadatos en XML
En fichero orm.xml
Enpersistence.xml
Fichero referenciados desde
persistence.xml

XML revoca las indicaciones de
Annotations
En deploy pueden se pueden ajustar
rendimientos sin tocar código fuente
nov-08

alb@uniovi.es

17

Metadatos xml, ejemplo

nov-08

alb@uniovi.es

18

Categorías de anotaciones
Entity
Database Schema
Identity
Direct Mappings
Relationship
mappins
Composition
nov-08Inheritance
Locking
Lifecycle
Entity Manager
Queries

alb@uniovi.es

19

Anotaciones por categoría

nov-08

alb@uniovi.es

20

Anotaciones por categoría

nov-08

alb@uniovi.es

21

Mapeo de clases

nov-08

alb@uniovi.es

22

Entidades
@Entity
Marca una clase como entidad
Atributo “name” opcional
será el usado
en las queries

@Table

nov-08...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Mapeo
  • Mapeo
  • Mapeo
  • Mapeo
  • Mapeo
  • Mapeos
  • Mapeo de procesos
  • Mapeo de procesos

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS