SlideShare una empresa de Scribd logo
Aurelio Martín Obando Távara aot@upnorte.edu.pe proyectos iiINTRODUCCIÓN A JEE5 – PARTE II
EnalteciendoLos Temas 1 3 2 1 Entidades Converter y Validator Beans de Sesión
AGENDA EntidadesBeans de SesiónConverter y ValidatorResumen Clase 05 1
2 CONTENIDO
	Una entidad es un objeto del dominio de persistencia, pero mucho mas ligero. Típicamente una entidad representa una tabla de un modelo de datos relacional, en donde cada instancia de la entidad es una fila en dicha tabla.JPA brinda soporte  para facilitar la construcción y mantenimiento de las relaciones entre clases, su cardinalidad: @OneToOne, @OneToMany, @ManyToOne, @ManyToMany y la navegabilidad: Bidireccional y Unidireccional.Y finalmente, brinda gran facilidad al momento de mapear herencias o especializaciones entre objetos. ENTIDADES
	Toda entidad debe tener una llave primariaPuede mapearse a una (llave primaria simple) o más (llave primaria compuesta) propiedades Consiste de múltiples llaves primarias simples LAVES PRIMARIAS COMPUESTAS
Consiste de múltiples llaves primarias Puede ser representada por un clase “Primary Key” que… debe ser Serializable publicclassMowerPKimplementsjava.io.Serializable { debe tener un constructor público sin paso de parámetros publicMowerPK() { … } debe implementar los métodos equals() y hashCode() publicinthashCode() { ... } publicbooleanequals(Objectobj) { ... } LlavesPrimariasCompuestas
No es usada internamente por clases persistentes Usado por el EntityManager Ejemplo de esquema de base de datos 		create table MOWER ( 	make varchar(255) not null,  	model varchar(255) not null,  	size integer not null,  	primary key (make, model) 		) Usando una Clase Primary Key como un IdClass
packageejava.examples.orm.core; importjava.io.Serializable; publicclassMowerPKimplementsSerializable { privatestatic final longserialVersionUID = 1L; privateStringmake; privateStringmodel; publicMowerPK() { … } publicMowerPK(Stringmake, Stringmodel) { this.make = make; this.model = model;     } publicstaticlonggetSerialVersionUID() { returnserialVersionUID;     } publicStringgetMake() { returnmake;     } privatevoidsetMake(Stringmake) { this.make = make;     } … Ejemplo de Clase Compuesta PK
… publicStringgetModel() { returnmodel;     } privatevoidsetModel(Stringmodel) { this.model = model;     } publicinthashCode() { returnmake.hashCode() + model.hashCode();     } publicbooleanequals(Objectobj) {         try { if (this == obj) return true; returnmake.equals(((MowerPK)obj).getMake()) && model.equals(((MowerPK)obj).getModel());         } catch (Throwableignored) {  return false;         }     }     publicStringtoString() { returnsuper.toString() + ", make=" + make+ ", model=" + model;     } } Ejemplo de Clase Compuesta PK (Cont.)
packageejava.examples.orm.core.annotated; importjava.io.Serializable; importjavax.persistence.*; importejava.examples.orm.core.MowerPK; @Entity @Table(name="MOWER") @IdClass(MowerPK.class) publicclassMowerimplementsSerializable { privatestatic final longserialVersionUID = 1L; privateStringmake; privateStringmodel;     privateintsize; publicMower() { … } publicMower(Stringmake, Stringmodel) { this.make = make; this.model = model; } … Ejemplo de uso de un IdClass
… @Id     @Column(nullable=false, updatable=false) publicStringgetMake() { returnmake;     } privatevoidsetMake(Stringmake) { this.make = make;     } @Id     @Column(nullable=false, updatable=false) publicStringgetModel() { returnmodel;     } privatevoidsetModel(Stringmodel) { this.model = model;     } publicintgetSize() { returnsize;     } publicvoidsetSize(intsize) { this.size = size; } } Ejemplo de uso de un IdClass(Cont.)
Esquemade base de datos create table NAPSACK ( 	NAPSACK_MAKE varchar(255) not null,  	NAPSACK_MODEL varchar(255) not null,  	size integer not null,  	primary key (NAPSACK_MAKE, NAPSACK_MODEL) ) Usando un clase Primary Key como un EmbeddedId
package ejava.examples.orm.core.annotated; import java.io.Serializable; import javax.persistence.*; @Embeddable public class NapsackPKimplements Serializable {     private static final long serialVersionUID = 1L;     private String make;     private String model; public NapsackPK() { … }     public NapsackPK(String make, String model) { this.make = make; this.model = model; } @Column(name="NAPSACK_MAKE")     public String getMake() {         return make;     }     public void setMake(String make) { this.make = make;     } … Ejemplo de EmbeddedId
@Column(name="NAPSACK_MODEL")     public String getModel() {         return model;     }     public void setModel(String model) { this.model = model;     }     public inthashCode() {         return make.hashCode() + model.hashCode(); }     public booleanequals(Object obj) {         try {             if (this == obj) return true;             return make.equals(((NapsackPK)obj).getMake()) && model.equals(((NapsackPK)obj).getModel());         } catch (Throwable ignored) { //catch NP & Cast Exceptions              return false;         }     }     public String toString() {         return super.toString() + ", make=" + make + ", model=" + model; } } Ejemplo de EmbeddedId(Cont.)
package ejava.examples.orm.core.annotated; import java.io.Serializable; import javax.persistence.*; @Entity @Table(name="NAPSACK") public class Napsack implements Serializable {     private static final long serialVersionUID = 1L;     private NapsackPKpk;     private int size;     public Napsack() {}     public Napsack(String make, String model) {         this.pk = new NapsackPK(make, model);     } @EmbeddedId     public NapsackPKgetPk() {         return pk;     }     public void setPk(NapsackPKpk) {         this.pk = pk;     }     … } Ejemplo de uso de EmbeddedIdusando Anotaciones
	JPA reconoce y mapea las relaciones en el modelo de datos relacional y lo translada a las clases en el modelo de dominioDe este modo, las cardinalidades como Uno-a-Uno, Muchos-a-Uno, Uno-a-Muchos y Muchos-a-Muchos existen como anotaciones en el marco de trabajo JPAEstas anotaciones también son susceptible a cierta optimización de acuerdo a ciertas características que veremos a continuación MAPEO DE OBJETOS Y RELACIONES
One-To-One (Uno-a-Uno)
Uni-direccional Bi-direccional OneToOne
OneToOne
public interface OneToOne extends ... { Class targetEntity() default void.class claseentidad a la queestárelacionada usualmente se determinapor el tipo de la propiedad CascadeType[] cascade() default {} 	define queoperaciones de persistencia se realizan en modocascadasobre el objetorelacionado FetchType fetch() default EAGER 	define el modo de carga del objetorelacionado boolean optional() default true 	define siwl valor de la relaciónpuedesernula o no String mappedBy() default “” usado solo en relacionesbidireccionales en el ladoinverso 	de la relación señala la propiedadremota en la clasedueña de la relaciónque define el mapeo a la base de datos Anotación @OneToOne
public interface JoinColumns extends ... { public abstract JoinColumn[] value(); define un arreglo de claves foráneasque son parte de unallaveprimariacompuesta Example Usage @OneToOne 	@JoinColumns({ 		@JoinColumn(...), 		@JoinColumn(...) 	}) Anotación @JoinColumns
Many-To-One (Muchos-a-Uno)
Uni-direccional Bi-direccional ManyToOne
ManyToOne
public interface ManyToOneextends ... { Class targetEntity() default void.class claseentidad a la queestárelacionada usualmente se determinapor el tipo de la propiedad CascadeType[] cascade() default {} 	define queoperaciones de persistencia se realizan en modocascadasobre el objetorelacionado FetchType fetch() default EAGER 	define el modo de carga del objetorelacionado boolean optional() default true 	define siwl valor de la relaciónpuedesernula o no Anotación @ManyToOne
public interface OneToManyextends ... { Class targetEntity() default void.class claseentidad a la queestárelacionada usualmente se determinapor el tipo de la propiedad CascadeType[] cascade() default {} 	define queoperaciones de persistencia se realizan en modocascadasobre el objetorelacionado FetchType fetch() default EAGER 	define el modo de carga del objetorelacionado String mappedBy() default “” usado solo en relacionesbidireccionales en el ladoinverso 	de la relación señala la propiedadremota en la clasedueña de la relaciónque define el mapeo a la base de datos Anotación @OneToMany
Modificando una lista de objetos
One-To-Many (Uno-a-Muchos)
Uni-direccional OneToMany
OneToMany
Link/JoinTable
public interface JoinTable extends ... { muy similar a la anotación @Table String name() default “” nombre de la tablapara la tabla “join” String catalog() default “” nombre de la base de datos String schema() default “” nombre del esquema JoinColumn[] joinColumns() default {} arreglo de columnasquedefinen la clave foranea a esteobjeto JoinColumn[] inverseJoinColumns() default {} arreglo de columnasquedefinen la llaveforáneo al objetorelacionado UniqueConstraint[] uniqueConstraints() Anotación @JoinTable
Many-To-Many (Muchos-a-Muchos)
Uni-direccional Bi-direccional ManyToMany
ManyToMany
public interface ManyToManyextends ... { Class targetEntity() default void.class claseentidad a la queestárelacionada usualmente se determinapor el tipo de la propiedad CascadeType[] cascade() default {} 	define queoperaciones de persistencia se realizan en modocascadasobre el objetorelacionado FetchType fetch() default EAGER 	define el modo de carga del objetorelacionado String mappedBy() default “” usado solo en relacionesbidireccionales en el ladoinverso 	de la relación señala la propiedadremota en la clasedueña de la relaciónque define el mapeo a la base de datos Anotación @ManyToMany
ALL- combinación de todos los tiposPERSIST- objetosrelacionados son automáticamenteadministrados y seránpersistentes en la base de datoscuandohansidorelacionado a esteobjetoREMOVE- objetosrelacionados son eliminados de la base de datoscuandoesteobjetoeseliminadoREFRESH- objetosrelacionadostraeránsu “estado” de la base de datoscuandoesteobjetoes “refrescado”MERGE- objetosrelacionadosactualizaránsu “estado” en la base de datoscuandoesteobjetoesactualizado TIPOS DE CASCADA
	JPA contiene anotaciones que permiten mapear herencia entre clases a la base de datos.Existen algunas estrategias para realizar esto:- TablaÚnica- TablaporClaseConcreta- TablaporClase(Join) MAPEO DE HERENCIA DE OBJETOS
Estrategia de Herencia: Tabla Única
Resumen de la estrategia : Tabla Única
public interface DiscriminatorColumn extends ... { define unacolumna en la tablaqueseñala el tipo de fila String name() default “DTYPE” Nombre de la columnaquealmacena el tipo de la fila DiscriminatorTypediscriminatorType() default STRING Tipo de dato de la columna “name” String columnDefinition(); Definiciónexplicita de la columna int length() Longitud de la cadenaparatipos STRING enumDiscriminatorType STRING CHAR INTEGER Anotación @DiscriminatorColumn
public interface DiscriminatorValue extends ... { Define el valor de la columnapara la columnadiscriminadora String value() pordefecto String 	– 	nombre de la entidad CHAR 	– 	valorespecífico INTEGER 	– 	valorespecífico Anotación @DiscriminatorValue
public interface Inheritance extends ...{ InheritanceTypestrategy() pordefectoSINGLE_TABLE enumInheritanceType SINGLE_TABLE Unatablaraizporcadajerarquía de clases TABLE_PER_CLASS Unatablaporcadaclaseconcreta JOINED Unatablaporcadaclase en la jerarquía Anotación @Inheritance
Estrategia de Herencia: Tabla por Clase Concreta
Resumen de la estrategia : Tabla por Clase Concreta
Estrategia de Herencia: Tabla por Sub-Clase (Join)
Resumen de la estrategia : Tabla por Sub-Clase (Join)
	Implementación de un flujo de trabajoInteractúa con otros beansAccede directamente a la base de datos- operaciones «bulky»Ejemplo: Registrar Cuentavs. EntityBeans- representan datos compartidos en la base de datos- interactúa con datos generalmente al nivel individual de objeto-fila- Ejemplo: Cuenta BEANS DE SESIÓN
Ejemplo de un flujo de trabajo bajo el patrón DAO
Los bean de sesión eliminan la complejidad en el flujo de trabajo en el Cliente
Beans de Sesión Stateless/Stateful
	JSF pone a disposición del web-master una herramienta muy útil para la conversión de datos entre la vista y el bean administradoY como todo en Java, existen casos cuando uno necesita su «converter» personalizados. JSF ofrece un marco de trabajo para el desarrollo de «customconverters»JSF tiene un mecanismo de validación de datos, el cual ocurre antes que los datos del componente GUI actualicen el modelo en el beanadministrado CONVERTER Y VALIDATOR
Modelo de Conversión
Pasos para crear un Converter
Converters de JSF BigDecimalConverter BigIntegerConverter BooleanConverter ByteConverter CharacterConverter DateTimeConverter DoubleConverter FloatConverter IntegerConverter LongConverter NumberConverter ShortConverter TodosestosConverterstienen un error asociado a ellos, de tal forma que de no pasar la conversión, el error se visualizará en la pagina. DateTimeConverter y NumberConverter tienen sus propias etiquetas, esto nos dice que podemos configurar el formato de los datos del componente a través de los atributos de la etiqueta.
Modelo de Validación
LongRangeValidator Nótese que existe un mensaje enlazado a la caja de texto, el cual capturará los mensajes de error que se disparen. Nótese que los valores máximo y mínimo del validador se pueden enlazar a propiedades de un bean administrado.
3 Resumen
WAR Interfaces de Usuario Componentes GUI Personalizados EAR EJB WAR Richfaces 3.x My Faces 1.7 Java Mail Archivos de Configuración Controladores Delegados utilitarios Entidades del Negocio SessionBeans Seguridad RESUMEN ,[object Object]
Esta clase ha tocado las 3 capas de las 5 propuestas. ¿Cuales son estas 3 capas?,[object Object]
Lado dueño e inverso
Tipos de relación
OneToOne

Más contenido relacionado

La actualidad más candente

4. Programación con arrays, funciones, y objetos definidos por el usuario
4. Programación con arrays, funciones, y objetos definidos por el usuario4. Programación con arrays, funciones, y objetos definidos por el usuario
4. Programación con arrays, funciones, y objetos definidos por el usuario
Laura Folgado Galache
 
P1C5 Lenguaje de Expresiones
P1C5 Lenguaje de ExpresionesP1C5 Lenguaje de Expresiones
P1C5 Lenguaje de Expresiones
Aurelio Martín Obando Távara
 
Sql dataadapter
Sql dataadapterSql dataadapter
Sql dataadapter
Jairo Quiroz Cabanillas
 
Programa Java que gestiona los productos que comercializan varios viveros
Programa Java que gestiona los productos que comercializan varios viverosPrograma Java que gestiona los productos que comercializan varios viveros
Programa Java que gestiona los productos que comercializan varios viveros
jubacalo
 
03 action forms
03 action forms03 action forms
03 action forms
Roberto Moreno Doñoro
 
Guia poo
Guia pooGuia poo
Guia poo
Sergio Barbar
 
Semana 5 Java Swing
Semana 5   Java SwingSemana 5   Java Swing
Semana 5 Java Swing
Richard Eliseo Mendoza Gafaro
 
Clase 5 funciones en javaScript
Clase 5 funciones en javaScriptClase 5 funciones en javaScript
Clase 5 funciones en javaScript
José Ricardo Tillero Giménez
 
53 Php. Clases Y Objetos
53 Php. Clases Y Objetos53 Php. Clases Y Objetos
53 Php. Clases Y Objetos
José M. Padilla
 
2.android java
2.android   java2.android   java
2.android java
guidotic
 
2 f programas
2 f programas2 f programas
2 f programas
Diego Garcia Lorenzo
 
Leccion 04 plataforma java operadores especiales prototipos paso por refere...
Leccion 04   plataforma java operadores especiales prototipos paso por refere...Leccion 04   plataforma java operadores especiales prototipos paso por refere...
Leccion 04 plataforma java operadores especiales prototipos paso por refere...
letm
 
Clase 7 objetos globales de javaScript
Clase 7 objetos globales de javaScriptClase 7 objetos globales de javaScript
Clase 7 objetos globales de javaScript
José Ricardo Tillero Giménez
 
4 manejo de_metodos
4 manejo de_metodos4 manejo de_metodos
4 manejo de_metodos
ElielMauricioEscobar
 
Metodos 2
Metodos 2Metodos 2
Metodos 2
ariadnitaa
 
Clase 6 objetos de javaScript
Clase 6 objetos de javaScriptClase 6 objetos de javaScript
Clase 6 objetos de javaScript
José Ricardo Tillero Giménez
 
Guia poo
Guia pooGuia poo
Guia poo
Sergio Barbar
 
Capítulo 04 objetos fijos
Capítulo 04 objetos fijosCapítulo 04 objetos fijos
Capítulo 04 objetos fijos
Sergio Valenzuela Mayer
 
Clase3 asignaciones
Clase3 asignacionesClase3 asignaciones
Clase3 asignaciones
jorg_marq
 
ProgramacióN Orientada A Objetos
ProgramacióN Orientada A ObjetosProgramacióN Orientada A Objetos
ProgramacióN Orientada A Objetos
Patricio Abad
 

La actualidad más candente (20)

4. Programación con arrays, funciones, y objetos definidos por el usuario
4. Programación con arrays, funciones, y objetos definidos por el usuario4. Programación con arrays, funciones, y objetos definidos por el usuario
4. Programación con arrays, funciones, y objetos definidos por el usuario
 
P1C5 Lenguaje de Expresiones
P1C5 Lenguaje de ExpresionesP1C5 Lenguaje de Expresiones
P1C5 Lenguaje de Expresiones
 
Sql dataadapter
Sql dataadapterSql dataadapter
Sql dataadapter
 
Programa Java que gestiona los productos que comercializan varios viveros
Programa Java que gestiona los productos que comercializan varios viverosPrograma Java que gestiona los productos que comercializan varios viveros
Programa Java que gestiona los productos que comercializan varios viveros
 
03 action forms
03 action forms03 action forms
03 action forms
 
Guia poo
Guia pooGuia poo
Guia poo
 
Semana 5 Java Swing
Semana 5   Java SwingSemana 5   Java Swing
Semana 5 Java Swing
 
Clase 5 funciones en javaScript
Clase 5 funciones en javaScriptClase 5 funciones en javaScript
Clase 5 funciones en javaScript
 
53 Php. Clases Y Objetos
53 Php. Clases Y Objetos53 Php. Clases Y Objetos
53 Php. Clases Y Objetos
 
2.android java
2.android   java2.android   java
2.android java
 
2 f programas
2 f programas2 f programas
2 f programas
 
Leccion 04 plataforma java operadores especiales prototipos paso por refere...
Leccion 04   plataforma java operadores especiales prototipos paso por refere...Leccion 04   plataforma java operadores especiales prototipos paso por refere...
Leccion 04 plataforma java operadores especiales prototipos paso por refere...
 
Clase 7 objetos globales de javaScript
Clase 7 objetos globales de javaScriptClase 7 objetos globales de javaScript
Clase 7 objetos globales de javaScript
 
4 manejo de_metodos
4 manejo de_metodos4 manejo de_metodos
4 manejo de_metodos
 
Metodos 2
Metodos 2Metodos 2
Metodos 2
 
Clase 6 objetos de javaScript
Clase 6 objetos de javaScriptClase 6 objetos de javaScript
Clase 6 objetos de javaScript
 
Guia poo
Guia pooGuia poo
Guia poo
 
Capítulo 04 objetos fijos
Capítulo 04 objetos fijosCapítulo 04 objetos fijos
Capítulo 04 objetos fijos
 
Clase3 asignaciones
Clase3 asignacionesClase3 asignaciones
Clase3 asignaciones
 
ProgramacióN Orientada A Objetos
ProgramacióN Orientada A ObjetosProgramacióN Orientada A Objetos
ProgramacióN Orientada A Objetos
 

Destacado

Diapositivas base de datos
Diapositivas base de datosDiapositivas base de datos
Diapositivas base de datos
Yiber
 
Sql básico - compendio
Sql básico  - compendioSql básico  - compendio
Sql básico - compendio
Jose Diaz Silva
 
CREANDO Y MANIPULANDO UNA BASE DE DATOS (MySQL)
CREANDO Y MANIPULANDO UNA BASE DE DATOS (MySQL)CREANDO Y MANIPULANDO UNA BASE DE DATOS (MySQL)
CREANDO Y MANIPULANDO UNA BASE DE DATOS (MySQL)
Ing-D-SW-TorresKhano--ME
 
Mapa Conceptual
Mapa ConceptualMapa Conceptual
Mapa Conceptual
lukapegue
 
Modelo Relacional
Modelo RelacionalModelo Relacional
Modelo Relacional
Jesús Rojas
 
Creación de tablas y relaciones en MySQL y SQL yog
Creación de tablas y relaciones en MySQL y SQL yogCreación de tablas y relaciones en MySQL y SQL yog
Creación de tablas y relaciones en MySQL y SQL yog
Jair Ospino Ardila
 

Destacado (6)

Diapositivas base de datos
Diapositivas base de datosDiapositivas base de datos
Diapositivas base de datos
 
Sql básico - compendio
Sql básico  - compendioSql básico  - compendio
Sql básico - compendio
 
CREANDO Y MANIPULANDO UNA BASE DE DATOS (MySQL)
CREANDO Y MANIPULANDO UNA BASE DE DATOS (MySQL)CREANDO Y MANIPULANDO UNA BASE DE DATOS (MySQL)
CREANDO Y MANIPULANDO UNA BASE DE DATOS (MySQL)
 
Mapa Conceptual
Mapa ConceptualMapa Conceptual
Mapa Conceptual
 
Modelo Relacional
Modelo RelacionalModelo Relacional
Modelo Relacional
 
Creación de tablas y relaciones en MySQL y SQL yog
Creación de tablas y relaciones en MySQL y SQL yogCreación de tablas y relaciones en MySQL y SQL yog
Creación de tablas y relaciones en MySQL y SQL yog
 

Similar a P2C5 Introducción a JEE5 - II

Persistencia avanzada de datos en Java. JPA
Persistencia avanzada de datos en Java. JPAPersistencia avanzada de datos en Java. JPA
Persistencia avanzada de datos en Java. JPA
JosngelViedmaMartnez
 
Bases de Datos en Java - Intro a JDBC
Bases de Datos en Java - Intro a JDBCBases de Datos en Java - Intro a JDBC
Bases de Datos en Java - Intro a JDBC
Carlos Hernando
 
Clase 2
Clase 2 Clase 2
Clase 2
Willy Aguirre
 
Explicacion de la Clase en Java-MySQL.pdf
Explicacion de la Clase en Java-MySQL.pdfExplicacion de la Clase en Java-MySQL.pdf
Explicacion de la Clase en Java-MySQL.pdf
GregorioSnchez7
 
Guia7 java
Guia7 javaGuia7 java
Guia7 java
odelys2003
 
Creación de Builders y DSL's con Groovy
Creación de Builders y DSL's con GroovyCreación de Builders y DSL's con Groovy
Creación de Builders y DSL's con Groovy
Jose Juan R. Zuñiga
 
Curso de Desarrollo Web 2
Curso de Desarrollo Web 2Curso de Desarrollo Web 2
Curso de Desarrollo Web 2
juliocombativo
 
Fundamento de poo en php
Fundamento de poo en phpFundamento de poo en php
Fundamento de poo en php
Robert Moreira
 
[ES] Manejadores de persistencia
[ES] Manejadores  de persistencia[ES] Manejadores  de persistencia
[ES] Manejadores de persistencia
Eudris Cabrera
 
Scala en proyectos de vinculación Ancap-UR - 2013-03
Scala en proyectos de vinculación Ancap-UR - 2013-03Scala en proyectos de vinculación Ancap-UR - 2013-03
Scala en proyectos de vinculación Ancap-UR - 2013-03
Germán Ferrari
 
Carro De Compras
Carro De ComprasCarro De Compras
Carro De Compras
riqsiq
 
Java con-base-datos
Java con-base-datosJava con-base-datos
Java con-base-datos
EDILSIA CARRERA SANCHEZ
 
S8-POO-4.2 BDD
S8-POO-4.2 BDDS8-POO-4.2 BDD
Clase 21 programacion ejb 3.0
Clase 21 programacion ejb 3.0Clase 21 programacion ejb 3.0
Clase 21 programacion ejb 3.0
Pablo Andres Cáceres Ferreira
 
Jpa
JpaJpa
Objeto relacional bases datos 2
Objeto relacional bases datos 2Objeto relacional bases datos 2
Objeto relacional bases datos 2
Velmuz Buzz
 
Best Practices
Best PracticesBest Practices
Best Practices
Luis Miguel De Bello
 
6 Upv Solo Pruebas 2009
6 Upv Solo Pruebas 20096 Upv Solo Pruebas 2009
6 Upv Solo Pruebas 2009
Pepe
 
S8-BDD
S8-BDDS8-BDD
Conexión a postgres desde
Conexión a postgres desdeConexión a postgres desde
Conexión a postgres desde
jbersosa
 

Similar a P2C5 Introducción a JEE5 - II (20)

Persistencia avanzada de datos en Java. JPA
Persistencia avanzada de datos en Java. JPAPersistencia avanzada de datos en Java. JPA
Persistencia avanzada de datos en Java. JPA
 
Bases de Datos en Java - Intro a JDBC
Bases de Datos en Java - Intro a JDBCBases de Datos en Java - Intro a JDBC
Bases de Datos en Java - Intro a JDBC
 
Clase 2
Clase 2 Clase 2
Clase 2
 
Explicacion de la Clase en Java-MySQL.pdf
Explicacion de la Clase en Java-MySQL.pdfExplicacion de la Clase en Java-MySQL.pdf
Explicacion de la Clase en Java-MySQL.pdf
 
Guia7 java
Guia7 javaGuia7 java
Guia7 java
 
Creación de Builders y DSL's con Groovy
Creación de Builders y DSL's con GroovyCreación de Builders y DSL's con Groovy
Creación de Builders y DSL's con Groovy
 
Curso de Desarrollo Web 2
Curso de Desarrollo Web 2Curso de Desarrollo Web 2
Curso de Desarrollo Web 2
 
Fundamento de poo en php
Fundamento de poo en phpFundamento de poo en php
Fundamento de poo en php
 
[ES] Manejadores de persistencia
[ES] Manejadores  de persistencia[ES] Manejadores  de persistencia
[ES] Manejadores de persistencia
 
Scala en proyectos de vinculación Ancap-UR - 2013-03
Scala en proyectos de vinculación Ancap-UR - 2013-03Scala en proyectos de vinculación Ancap-UR - 2013-03
Scala en proyectos de vinculación Ancap-UR - 2013-03
 
Carro De Compras
Carro De ComprasCarro De Compras
Carro De Compras
 
Java con-base-datos
Java con-base-datosJava con-base-datos
Java con-base-datos
 
S8-POO-4.2 BDD
S8-POO-4.2 BDDS8-POO-4.2 BDD
S8-POO-4.2 BDD
 
Clase 21 programacion ejb 3.0
Clase 21 programacion ejb 3.0Clase 21 programacion ejb 3.0
Clase 21 programacion ejb 3.0
 
Jpa
JpaJpa
Jpa
 
Objeto relacional bases datos 2
Objeto relacional bases datos 2Objeto relacional bases datos 2
Objeto relacional bases datos 2
 
Best Practices
Best PracticesBest Practices
Best Practices
 
6 Upv Solo Pruebas 2009
6 Upv Solo Pruebas 20096 Upv Solo Pruebas 2009
6 Upv Solo Pruebas 2009
 
S8-BDD
S8-BDDS8-BDD
S8-BDD
 
Conexión a postgres desde
Conexión a postgres desdeConexión a postgres desde
Conexión a postgres desde
 

Más de Aurelio Martín Obando Távara

Configuracion del Entorno
Configuracion del EntornoConfiguracion del Entorno
Configuracion del Entorno
Aurelio Martín Obando Távara
 
Descripción y fuentes de excepciones comunes
Descripción y fuentes de excepciones comunesDescripción y fuentes de excepciones comunes
Descripción y fuentes de excepciones comunes
Aurelio Martín Obando Távara
 
Gestión de Excepciones
Gestión de ExcepcionesGestión de Excepciones
Gestión de Excepciones
Aurelio Martín Obando Távara
 
JEE y Tomcat
JEE y TomcatJEE y Tomcat
P1C4 Criterios De Evaluación - T1
P1C4 Criterios De Evaluación - T1P1C4 Criterios De Evaluación - T1
P1C4 Criterios De Evaluación - T1
Aurelio Martín Obando Távara
 
P1C3 Etiquetas JavaServer Faces al detalle
P1C3 Etiquetas JavaServer Faces al detalleP1C3 Etiquetas JavaServer Faces al detalle
P1C3 Etiquetas JavaServer Faces al detalle
Aurelio Martín Obando Távara
 
Etiquetas JavaServer Faces
Etiquetas JavaServer FacesEtiquetas JavaServer Faces
Etiquetas JavaServer Faces
Aurelio Martín Obando Távara
 
Datatable Y Column
Datatable Y ColumnDatatable Y Column
Datatable Y Column
Aurelio Martín Obando Távara
 
P1C3 Anotaciones
P1C3 AnotacionesP1C3 Anotaciones
P1C2 Navegación y Parámetros
P1C2 Navegación y ParámetrosP1C2 Navegación y Parámetros
P1C2 Navegación y Parámetros
Aurelio Martín Obando Távara
 
P2C1 - Configuración del Entorno
P2C1 - Configuración del EntornoP2C1 - Configuración del Entorno
P2C1 - Configuración del Entorno
Aurelio Martín Obando Távara
 
P1C1 - Java Server Faces 2.0
P1C1 - Java Server Faces 2.0P1C1 - Java Server Faces 2.0
P1C1 - Java Server Faces 2.0
Aurelio Martín Obando Távara
 

Más de Aurelio Martín Obando Távara (12)

Configuracion del Entorno
Configuracion del EntornoConfiguracion del Entorno
Configuracion del Entorno
 
Descripción y fuentes de excepciones comunes
Descripción y fuentes de excepciones comunesDescripción y fuentes de excepciones comunes
Descripción y fuentes de excepciones comunes
 
Gestión de Excepciones
Gestión de ExcepcionesGestión de Excepciones
Gestión de Excepciones
 
JEE y Tomcat
JEE y TomcatJEE y Tomcat
JEE y Tomcat
 
P1C4 Criterios De Evaluación - T1
P1C4 Criterios De Evaluación - T1P1C4 Criterios De Evaluación - T1
P1C4 Criterios De Evaluación - T1
 
P1C3 Etiquetas JavaServer Faces al detalle
P1C3 Etiquetas JavaServer Faces al detalleP1C3 Etiquetas JavaServer Faces al detalle
P1C3 Etiquetas JavaServer Faces al detalle
 
Etiquetas JavaServer Faces
Etiquetas JavaServer FacesEtiquetas JavaServer Faces
Etiquetas JavaServer Faces
 
Datatable Y Column
Datatable Y ColumnDatatable Y Column
Datatable Y Column
 
P1C3 Anotaciones
P1C3 AnotacionesP1C3 Anotaciones
P1C3 Anotaciones
 
P1C2 Navegación y Parámetros
P1C2 Navegación y ParámetrosP1C2 Navegación y Parámetros
P1C2 Navegación y Parámetros
 
P2C1 - Configuración del Entorno
P2C1 - Configuración del EntornoP2C1 - Configuración del Entorno
P2C1 - Configuración del Entorno
 
P1C1 - Java Server Faces 2.0
P1C1 - Java Server Faces 2.0P1C1 - Java Server Faces 2.0
P1C1 - Java Server Faces 2.0
 

Último

Lecciones 11 Esc. Sabática. El conflicto inminente docx
Lecciones 11 Esc. Sabática. El conflicto inminente docxLecciones 11 Esc. Sabática. El conflicto inminente docx
Lecciones 11 Esc. Sabática. El conflicto inminente docx
Alejandrino Halire Ccahuana
 
Independencia de Chile, Causas internas y externas
Independencia de Chile, Causas internas y externasIndependencia de Chile, Causas internas y externas
Independencia de Chile, Causas internas y externas
canessamacarena
 
Business Plan -rAIces - Agro Business Tech
Business Plan -rAIces - Agro Business TechBusiness Plan -rAIces - Agro Business Tech
Business Plan -rAIces - Agro Business Tech
johnyamg20
 
1.- manual-para-la-creacion-33-dias-de-manifestacion-ulises-sampe.pdf
1.- manual-para-la-creacion-33-dias-de-manifestacion-ulises-sampe.pdf1.- manual-para-la-creacion-33-dias-de-manifestacion-ulises-sampe.pdf
1.- manual-para-la-creacion-33-dias-de-manifestacion-ulises-sampe.pdf
MiNeyi1
 
tema 7. Los siglos XVI y XVII ( resumen)
tema 7. Los siglos XVI y XVII ( resumen)tema 7. Los siglos XVI y XVII ( resumen)
tema 7. Los siglos XVI y XVII ( resumen)
saradocente
 
APUNTES UNIDAD I ECONOMIA EMPRESARIAL .pdf
APUNTES UNIDAD I ECONOMIA EMPRESARIAL .pdfAPUNTES UNIDAD I ECONOMIA EMPRESARIAL .pdf
APUNTES UNIDAD I ECONOMIA EMPRESARIAL .pdf
VeronicaCabrera50
 
Ejercicios-de-Calculo-de-Goteo-Enfermeria1-1.ppt
Ejercicios-de-Calculo-de-Goteo-Enfermeria1-1.pptEjercicios-de-Calculo-de-Goteo-Enfermeria1-1.ppt
Ejercicios-de-Calculo-de-Goteo-Enfermeria1-1.ppt
eliseo membreño
 
Power Point: El conflicto inminente (Bosquejo)
Power Point: El conflicto inminente (Bosquejo)Power Point: El conflicto inminente (Bosquejo)
Power Point: El conflicto inminente (Bosquejo)
https://gramadal.wordpress.com/
 
CALCULO DE AMORTIZACION DE UN PRESTAMO.pdf
CALCULO DE AMORTIZACION DE UN PRESTAMO.pdfCALCULO DE AMORTIZACION DE UN PRESTAMO.pdf
CALCULO DE AMORTIZACION DE UN PRESTAMO.pdf
cesareduvr95
 
2024 planificacion microcurricular 7mo A matutino..docx
2024 planificacion microcurricular 7mo A matutino..docx2024 planificacion microcurricular 7mo A matutino..docx
2024 planificacion microcurricular 7mo A matutino..docx
WILLIAMPATRICIOSANTA2
 
DESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdf
DESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdfDESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdf
DESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdf
JonathanCovena1
 
Carnavision: anticipa y aprovecha - hackathon Pasto2024 .pdf
Carnavision: anticipa y aprovecha - hackathon Pasto2024 .pdfCarnavision: anticipa y aprovecha - hackathon Pasto2024 .pdf
Carnavision: anticipa y aprovecha - hackathon Pasto2024 .pdf
EleNoguera
 
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdfp4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
DavidCamiloMosquera
 
Qué entra en el examen de Geografía.pptx
Qué entra en el examen de Geografía.pptxQué entra en el examen de Geografía.pptx
Qué entra en el examen de Geografía.pptx
saradocente
 
UrkuninaLab.pdfsadsadasddassadsadsadasdsad
UrkuninaLab.pdfsadsadasddassadsadsadasdsadUrkuninaLab.pdfsadsadasddassadsadsadasdsad
UrkuninaLab.pdfsadsadasddassadsadsadasdsad
JorgeVillota6
 
ELEMENTOS DE LA COMPRENSION ORAL-ESCUCHA ACTIVA.pdf
ELEMENTOS DE LA COMPRENSION ORAL-ESCUCHA ACTIVA.pdfELEMENTOS DE LA COMPRENSION ORAL-ESCUCHA ACTIVA.pdf
ELEMENTOS DE LA COMPRENSION ORAL-ESCUCHA ACTIVA.pdf
DaliaAndrade1
 
Evaluacion-Formativa-Nueva Escuela Mexicana NEM-ok.pdf
Evaluacion-Formativa-Nueva Escuela Mexicana NEM-ok.pdfEvaluacion-Formativa-Nueva Escuela Mexicana NEM-ok.pdf
Evaluacion-Formativa-Nueva Escuela Mexicana NEM-ok.pdf
EfranMartnez8
 
MATERIAL ESCOLAR 2024-2025. 4 AÑOS CEIP SAN CRISTOBAL
MATERIAL ESCOLAR 2024-2025. 4 AÑOS CEIP SAN CRISTOBALMATERIAL ESCOLAR 2024-2025. 4 AÑOS CEIP SAN CRISTOBAL
MATERIAL ESCOLAR 2024-2025. 4 AÑOS CEIP SAN CRISTOBAL
Ana Fernandez
 
Presentación simple corporativa degradado en violeta blanco.pdf
Presentación simple corporativa degradado en violeta blanco.pdfPresentación simple corporativa degradado en violeta blanco.pdf
Presentación simple corporativa degradado en violeta blanco.pdf
eleandroth
 
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdf
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdfMundo ABC Examen 1 Grado- Tercer Trimestre.pdf
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdf
ViriEsteva
 

Último (20)

Lecciones 11 Esc. Sabática. El conflicto inminente docx
Lecciones 11 Esc. Sabática. El conflicto inminente docxLecciones 11 Esc. Sabática. El conflicto inminente docx
Lecciones 11 Esc. Sabática. El conflicto inminente docx
 
Independencia de Chile, Causas internas y externas
Independencia de Chile, Causas internas y externasIndependencia de Chile, Causas internas y externas
Independencia de Chile, Causas internas y externas
 
Business Plan -rAIces - Agro Business Tech
Business Plan -rAIces - Agro Business TechBusiness Plan -rAIces - Agro Business Tech
Business Plan -rAIces - Agro Business Tech
 
1.- manual-para-la-creacion-33-dias-de-manifestacion-ulises-sampe.pdf
1.- manual-para-la-creacion-33-dias-de-manifestacion-ulises-sampe.pdf1.- manual-para-la-creacion-33-dias-de-manifestacion-ulises-sampe.pdf
1.- manual-para-la-creacion-33-dias-de-manifestacion-ulises-sampe.pdf
 
tema 7. Los siglos XVI y XVII ( resumen)
tema 7. Los siglos XVI y XVII ( resumen)tema 7. Los siglos XVI y XVII ( resumen)
tema 7. Los siglos XVI y XVII ( resumen)
 
APUNTES UNIDAD I ECONOMIA EMPRESARIAL .pdf
APUNTES UNIDAD I ECONOMIA EMPRESARIAL .pdfAPUNTES UNIDAD I ECONOMIA EMPRESARIAL .pdf
APUNTES UNIDAD I ECONOMIA EMPRESARIAL .pdf
 
Ejercicios-de-Calculo-de-Goteo-Enfermeria1-1.ppt
Ejercicios-de-Calculo-de-Goteo-Enfermeria1-1.pptEjercicios-de-Calculo-de-Goteo-Enfermeria1-1.ppt
Ejercicios-de-Calculo-de-Goteo-Enfermeria1-1.ppt
 
Power Point: El conflicto inminente (Bosquejo)
Power Point: El conflicto inminente (Bosquejo)Power Point: El conflicto inminente (Bosquejo)
Power Point: El conflicto inminente (Bosquejo)
 
CALCULO DE AMORTIZACION DE UN PRESTAMO.pdf
CALCULO DE AMORTIZACION DE UN PRESTAMO.pdfCALCULO DE AMORTIZACION DE UN PRESTAMO.pdf
CALCULO DE AMORTIZACION DE UN PRESTAMO.pdf
 
2024 planificacion microcurricular 7mo A matutino..docx
2024 planificacion microcurricular 7mo A matutino..docx2024 planificacion microcurricular 7mo A matutino..docx
2024 planificacion microcurricular 7mo A matutino..docx
 
DESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdf
DESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdfDESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdf
DESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdf
 
Carnavision: anticipa y aprovecha - hackathon Pasto2024 .pdf
Carnavision: anticipa y aprovecha - hackathon Pasto2024 .pdfCarnavision: anticipa y aprovecha - hackathon Pasto2024 .pdf
Carnavision: anticipa y aprovecha - hackathon Pasto2024 .pdf
 
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdfp4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
 
Qué entra en el examen de Geografía.pptx
Qué entra en el examen de Geografía.pptxQué entra en el examen de Geografía.pptx
Qué entra en el examen de Geografía.pptx
 
UrkuninaLab.pdfsadsadasddassadsadsadasdsad
UrkuninaLab.pdfsadsadasddassadsadsadasdsadUrkuninaLab.pdfsadsadasddassadsadsadasdsad
UrkuninaLab.pdfsadsadasddassadsadsadasdsad
 
ELEMENTOS DE LA COMPRENSION ORAL-ESCUCHA ACTIVA.pdf
ELEMENTOS DE LA COMPRENSION ORAL-ESCUCHA ACTIVA.pdfELEMENTOS DE LA COMPRENSION ORAL-ESCUCHA ACTIVA.pdf
ELEMENTOS DE LA COMPRENSION ORAL-ESCUCHA ACTIVA.pdf
 
Evaluacion-Formativa-Nueva Escuela Mexicana NEM-ok.pdf
Evaluacion-Formativa-Nueva Escuela Mexicana NEM-ok.pdfEvaluacion-Formativa-Nueva Escuela Mexicana NEM-ok.pdf
Evaluacion-Formativa-Nueva Escuela Mexicana NEM-ok.pdf
 
MATERIAL ESCOLAR 2024-2025. 4 AÑOS CEIP SAN CRISTOBAL
MATERIAL ESCOLAR 2024-2025. 4 AÑOS CEIP SAN CRISTOBALMATERIAL ESCOLAR 2024-2025. 4 AÑOS CEIP SAN CRISTOBAL
MATERIAL ESCOLAR 2024-2025. 4 AÑOS CEIP SAN CRISTOBAL
 
Presentación simple corporativa degradado en violeta blanco.pdf
Presentación simple corporativa degradado en violeta blanco.pdfPresentación simple corporativa degradado en violeta blanco.pdf
Presentación simple corporativa degradado en violeta blanco.pdf
 
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdf
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdfMundo ABC Examen 1 Grado- Tercer Trimestre.pdf
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdf
 

P2C5 Introducción a JEE5 - II

  • 1. Aurelio Martín Obando Távara aot@upnorte.edu.pe proyectos iiINTRODUCCIÓN A JEE5 – PARTE II
  • 2. EnalteciendoLos Temas 1 3 2 1 Entidades Converter y Validator Beans de Sesión
  • 3. AGENDA EntidadesBeans de SesiónConverter y ValidatorResumen Clase 05 1
  • 5. Una entidad es un objeto del dominio de persistencia, pero mucho mas ligero. Típicamente una entidad representa una tabla de un modelo de datos relacional, en donde cada instancia de la entidad es una fila en dicha tabla.JPA brinda soporte para facilitar la construcción y mantenimiento de las relaciones entre clases, su cardinalidad: @OneToOne, @OneToMany, @ManyToOne, @ManyToMany y la navegabilidad: Bidireccional y Unidireccional.Y finalmente, brinda gran facilidad al momento de mapear herencias o especializaciones entre objetos. ENTIDADES
  • 6. Toda entidad debe tener una llave primariaPuede mapearse a una (llave primaria simple) o más (llave primaria compuesta) propiedades Consiste de múltiples llaves primarias simples LAVES PRIMARIAS COMPUESTAS
  • 7. Consiste de múltiples llaves primarias Puede ser representada por un clase “Primary Key” que… debe ser Serializable publicclassMowerPKimplementsjava.io.Serializable { debe tener un constructor público sin paso de parámetros publicMowerPK() { … } debe implementar los métodos equals() y hashCode() publicinthashCode() { ... } publicbooleanequals(Objectobj) { ... } LlavesPrimariasCompuestas
  • 8. No es usada internamente por clases persistentes Usado por el EntityManager Ejemplo de esquema de base de datos create table MOWER ( make varchar(255) not null, model varchar(255) not null, size integer not null, primary key (make, model) ) Usando una Clase Primary Key como un IdClass
  • 9. packageejava.examples.orm.core; importjava.io.Serializable; publicclassMowerPKimplementsSerializable { privatestatic final longserialVersionUID = 1L; privateStringmake; privateStringmodel; publicMowerPK() { … } publicMowerPK(Stringmake, Stringmodel) { this.make = make; this.model = model; } publicstaticlonggetSerialVersionUID() { returnserialVersionUID; } publicStringgetMake() { returnmake; } privatevoidsetMake(Stringmake) { this.make = make; } … Ejemplo de Clase Compuesta PK
  • 10. … publicStringgetModel() { returnmodel; } privatevoidsetModel(Stringmodel) { this.model = model; } publicinthashCode() { returnmake.hashCode() + model.hashCode(); } publicbooleanequals(Objectobj) { try { if (this == obj) return true; returnmake.equals(((MowerPK)obj).getMake()) && model.equals(((MowerPK)obj).getModel()); } catch (Throwableignored) { return false; } } publicStringtoString() { returnsuper.toString() + ", make=" + make+ ", model=" + model; } } Ejemplo de Clase Compuesta PK (Cont.)
  • 11. packageejava.examples.orm.core.annotated; importjava.io.Serializable; importjavax.persistence.*; importejava.examples.orm.core.MowerPK; @Entity @Table(name="MOWER") @IdClass(MowerPK.class) publicclassMowerimplementsSerializable { privatestatic final longserialVersionUID = 1L; privateStringmake; privateStringmodel; privateintsize; publicMower() { … } publicMower(Stringmake, Stringmodel) { this.make = make; this.model = model; } … Ejemplo de uso de un IdClass
  • 12. … @Id @Column(nullable=false, updatable=false) publicStringgetMake() { returnmake; } privatevoidsetMake(Stringmake) { this.make = make; } @Id @Column(nullable=false, updatable=false) publicStringgetModel() { returnmodel; } privatevoidsetModel(Stringmodel) { this.model = model; } publicintgetSize() { returnsize; } publicvoidsetSize(intsize) { this.size = size; } } Ejemplo de uso de un IdClass(Cont.)
  • 13. Esquemade base de datos create table NAPSACK ( NAPSACK_MAKE varchar(255) not null, NAPSACK_MODEL varchar(255) not null, size integer not null, primary key (NAPSACK_MAKE, NAPSACK_MODEL) ) Usando un clase Primary Key como un EmbeddedId
  • 14. package ejava.examples.orm.core.annotated; import java.io.Serializable; import javax.persistence.*; @Embeddable public class NapsackPKimplements Serializable { private static final long serialVersionUID = 1L; private String make; private String model; public NapsackPK() { … } public NapsackPK(String make, String model) { this.make = make; this.model = model; } @Column(name="NAPSACK_MAKE") public String getMake() { return make; } public void setMake(String make) { this.make = make; } … Ejemplo de EmbeddedId
  • 15. @Column(name="NAPSACK_MODEL") public String getModel() { return model; } public void setModel(String model) { this.model = model; } public inthashCode() { return make.hashCode() + model.hashCode(); } public booleanequals(Object obj) { try { if (this == obj) return true; return make.equals(((NapsackPK)obj).getMake()) && model.equals(((NapsackPK)obj).getModel()); } catch (Throwable ignored) { //catch NP & Cast Exceptions return false; } } public String toString() { return super.toString() + ", make=" + make + ", model=" + model; } } Ejemplo de EmbeddedId(Cont.)
  • 16. package ejava.examples.orm.core.annotated; import java.io.Serializable; import javax.persistence.*; @Entity @Table(name="NAPSACK") public class Napsack implements Serializable { private static final long serialVersionUID = 1L; private NapsackPKpk; private int size; public Napsack() {} public Napsack(String make, String model) { this.pk = new NapsackPK(make, model); } @EmbeddedId public NapsackPKgetPk() { return pk; } public void setPk(NapsackPKpk) { this.pk = pk; } … } Ejemplo de uso de EmbeddedIdusando Anotaciones
  • 17. JPA reconoce y mapea las relaciones en el modelo de datos relacional y lo translada a las clases en el modelo de dominioDe este modo, las cardinalidades como Uno-a-Uno, Muchos-a-Uno, Uno-a-Muchos y Muchos-a-Muchos existen como anotaciones en el marco de trabajo JPAEstas anotaciones también son susceptible a cierta optimización de acuerdo a ciertas características que veremos a continuación MAPEO DE OBJETOS Y RELACIONES
  • 21. public interface OneToOne extends ... { Class targetEntity() default void.class claseentidad a la queestárelacionada usualmente se determinapor el tipo de la propiedad CascadeType[] cascade() default {} define queoperaciones de persistencia se realizan en modocascadasobre el objetorelacionado FetchType fetch() default EAGER define el modo de carga del objetorelacionado boolean optional() default true define siwl valor de la relaciónpuedesernula o no String mappedBy() default “” usado solo en relacionesbidireccionales en el ladoinverso de la relación señala la propiedadremota en la clasedueña de la relaciónque define el mapeo a la base de datos Anotación @OneToOne
  • 22. public interface JoinColumns extends ... { public abstract JoinColumn[] value(); define un arreglo de claves foráneasque son parte de unallaveprimariacompuesta Example Usage @OneToOne @JoinColumns({ @JoinColumn(...), @JoinColumn(...) }) Anotación @JoinColumns
  • 26. public interface ManyToOneextends ... { Class targetEntity() default void.class claseentidad a la queestárelacionada usualmente se determinapor el tipo de la propiedad CascadeType[] cascade() default {} define queoperaciones de persistencia se realizan en modocascadasobre el objetorelacionado FetchType fetch() default EAGER define el modo de carga del objetorelacionado boolean optional() default true define siwl valor de la relaciónpuedesernula o no Anotación @ManyToOne
  • 27. public interface OneToManyextends ... { Class targetEntity() default void.class claseentidad a la queestárelacionada usualmente se determinapor el tipo de la propiedad CascadeType[] cascade() default {} define queoperaciones de persistencia se realizan en modocascadasobre el objetorelacionado FetchType fetch() default EAGER define el modo de carga del objetorelacionado String mappedBy() default “” usado solo en relacionesbidireccionales en el ladoinverso de la relación señala la propiedadremota en la clasedueña de la relaciónque define el mapeo a la base de datos Anotación @OneToMany
  • 28. Modificando una lista de objetos
  • 33. public interface JoinTable extends ... { muy similar a la anotación @Table String name() default “” nombre de la tablapara la tabla “join” String catalog() default “” nombre de la base de datos String schema() default “” nombre del esquema JoinColumn[] joinColumns() default {} arreglo de columnasquedefinen la clave foranea a esteobjeto JoinColumn[] inverseJoinColumns() default {} arreglo de columnasquedefinen la llaveforáneo al objetorelacionado UniqueConstraint[] uniqueConstraints() Anotación @JoinTable
  • 37. public interface ManyToManyextends ... { Class targetEntity() default void.class claseentidad a la queestárelacionada usualmente se determinapor el tipo de la propiedad CascadeType[] cascade() default {} define queoperaciones de persistencia se realizan en modocascadasobre el objetorelacionado FetchType fetch() default EAGER define el modo de carga del objetorelacionado String mappedBy() default “” usado solo en relacionesbidireccionales en el ladoinverso de la relación señala la propiedadremota en la clasedueña de la relaciónque define el mapeo a la base de datos Anotación @ManyToMany
  • 38. ALL- combinación de todos los tiposPERSIST- objetosrelacionados son automáticamenteadministrados y seránpersistentes en la base de datoscuandohansidorelacionado a esteobjetoREMOVE- objetosrelacionados son eliminados de la base de datoscuandoesteobjetoeseliminadoREFRESH- objetosrelacionadostraeránsu “estado” de la base de datoscuandoesteobjetoes “refrescado”MERGE- objetosrelacionadosactualizaránsu “estado” en la base de datoscuandoesteobjetoesactualizado TIPOS DE CASCADA
  • 39. JPA contiene anotaciones que permiten mapear herencia entre clases a la base de datos.Existen algunas estrategias para realizar esto:- TablaÚnica- TablaporClaseConcreta- TablaporClase(Join) MAPEO DE HERENCIA DE OBJETOS
  • 40. Estrategia de Herencia: Tabla Única
  • 41. Resumen de la estrategia : Tabla Única
  • 42. public interface DiscriminatorColumn extends ... { define unacolumna en la tablaqueseñala el tipo de fila String name() default “DTYPE” Nombre de la columnaquealmacena el tipo de la fila DiscriminatorTypediscriminatorType() default STRING Tipo de dato de la columna “name” String columnDefinition(); Definiciónexplicita de la columna int length() Longitud de la cadenaparatipos STRING enumDiscriminatorType STRING CHAR INTEGER Anotación @DiscriminatorColumn
  • 43. public interface DiscriminatorValue extends ... { Define el valor de la columnapara la columnadiscriminadora String value() pordefecto String – nombre de la entidad CHAR – valorespecífico INTEGER – valorespecífico Anotación @DiscriminatorValue
  • 44. public interface Inheritance extends ...{ InheritanceTypestrategy() pordefectoSINGLE_TABLE enumInheritanceType SINGLE_TABLE Unatablaraizporcadajerarquía de clases TABLE_PER_CLASS Unatablaporcadaclaseconcreta JOINED Unatablaporcadaclase en la jerarquía Anotación @Inheritance
  • 45. Estrategia de Herencia: Tabla por Clase Concreta
  • 46. Resumen de la estrategia : Tabla por Clase Concreta
  • 47. Estrategia de Herencia: Tabla por Sub-Clase (Join)
  • 48. Resumen de la estrategia : Tabla por Sub-Clase (Join)
  • 49. Implementación de un flujo de trabajoInteractúa con otros beansAccede directamente a la base de datos- operaciones «bulky»Ejemplo: Registrar Cuentavs. EntityBeans- representan datos compartidos en la base de datos- interactúa con datos generalmente al nivel individual de objeto-fila- Ejemplo: Cuenta BEANS DE SESIÓN
  • 50. Ejemplo de un flujo de trabajo bajo el patrón DAO
  • 51. Los bean de sesión eliminan la complejidad en el flujo de trabajo en el Cliente
  • 52. Beans de Sesión Stateless/Stateful
  • 53. JSF pone a disposición del web-master una herramienta muy útil para la conversión de datos entre la vista y el bean administradoY como todo en Java, existen casos cuando uno necesita su «converter» personalizados. JSF ofrece un marco de trabajo para el desarrollo de «customconverters»JSF tiene un mecanismo de validación de datos, el cual ocurre antes que los datos del componente GUI actualicen el modelo en el beanadministrado CONVERTER Y VALIDATOR
  • 55. Pasos para crear un Converter
  • 56. Converters de JSF BigDecimalConverter BigIntegerConverter BooleanConverter ByteConverter CharacterConverter DateTimeConverter DoubleConverter FloatConverter IntegerConverter LongConverter NumberConverter ShortConverter TodosestosConverterstienen un error asociado a ellos, de tal forma que de no pasar la conversión, el error se visualizará en la pagina. DateTimeConverter y NumberConverter tienen sus propias etiquetas, esto nos dice que podemos configurar el formato de los datos del componente a través de los atributos de la etiqueta.
  • 58. LongRangeValidator Nótese que existe un mensaje enlazado a la caja de texto, el cual capturará los mensajes de error que se disparen. Nótese que los valores máximo y mínimo del validador se pueden enlazar a propiedades de un bean administrado.
  • 60.
  • 61.
  • 62. Lado dueño e inverso
  • 74. Tipo de Carga (Fetch)
  • 77.
  • 78. Única Tabla por Herencia de Clases
  • 79. Simple, rápido, no-normalizado, sin restricciones en base de datos
  • 80. Tabla por Clase Concreta
  • 81. No-normalizado, difícil de manejar polifórmicamente.
  • 82. Menos portabilidad entre gestores de bases de datos
  • 84. Normalizado, capaz de definir restricciones
  • 86. Una de las más grandes ventajas de la tecnología de Java Server Faces es que ofrece un conjunto de componentes que nos permiten concentrarnos en el proceso de desarrollo.
  • 87.
  • 88. Encuentra esta presentación en el AULA VIRTUAL O tambiénpuedesencontrarla en . Saludos!

Notas del editor

  1. lates.