SlideShare una empresa de Scribd logo
1 de 17
Descargar para leer sin conexión
Ing. Elkin Suárez
Esp. Gerencia de Proyectos
Candidato MBA
edsuarez@uis.edu.co



JAVA PERSISTENCE
API
             INGENIERIA WEB
¿ QUE ES JAVA PERSISTENCE API?

   Es un modelo de persistencia basado en POJOs
    para mapear bases de datos relacionales en Java.
   Es un modelo de persistencia que usa anotaciones
    en las entidades, no se requiere usar archivos
    descriptores XML.
   Es un modelo de persistencia que consiste en 4
    áreas:
     JPA (javax.persistence).
     El lenguaje de consultas.
     La Java Persistence Criteria API.
     La metadata del mapeo objeto/relacional.
ENTIDAD I
   Es una clase con anotaciones que representa a una
    tabla de una Base de Datos.
   Las anotaciones requeridas son:
       @Entity del paquete (javax.persistence.Entity). Con está
        anotación se le indica al motor de persistencia que la clase
        es una Entidad.
       @Table(name =“nombre_base_datos:nombre_tabla") del
        paquete (javax.persistence.Table). Con está anotación se le
        indica el nombre de la tabla y a cual base de datos
        pertenece.




       La entidad debe tener un método get/set para cada atributo.
ENTIDAD II
 La entidad debe implementar la interfaz Serializable
  del paquete (java.io) útil para la persistencia de
  objetos.
 La interfaz no tiene métodos solo sirve para identificar
  de que es serializable.
 Cualquier subclase de una clase serializable también
  lo es.
 La entidad serializable debe llevar el siguiente atributo,
  generado por el IDE Jboss Developer Studio.

 Todos los atributos de la entidad deben ser tipo Objeto
  o Tipo entidad.
 La   entidad debe sobre escribir los métodos
  hashCode() y equals(Object obj) de la clase Object,
  solo para el atributo llave de la entidad.
ANOTACIONES BÁSICAS
   @Id del paquete (javax.persistence.Id). Con está
    anotación se identifica el atributo que contiene la
    persistent identity de la entidad(la llave primaria).
   @GeneratedValue(strategy = GenerationType.AUTO) del
    paquete        (javax.persistence.GeneratedValue      y
    javax.persistence.GenerationType). Con está anotación
    se le indica que el campo llave es autoincremental
    realizado por el motor de base de datos.
   @Column (name= “nombre_del_campo") del paquete
    (javax.persistence.Column). Con está anotación se le
    indica el nombre de la columna de la tabla.
VALIDACIONES
   @NotNull del paquete (org.hibernate.validator.NotNull). Con
    está anotación el valor del atributo no debe ser null.
   @Length del paquete (org.hibernate.validator.Length). Con
    esta anotación la longitud de un atributo debe estar en el
    rango.




   @Range del paquete (org.hibernate.validator.Range). Con está
    anotación el valor del atributo numérico debe estar en el rango.
   @Email del paquete (org.hibernate.validator.Email). Con está
    anotación la cadena del atributo representa un patrón email.
RELACIONES ENTRE ENTIDADES I
   @ManyToOne(fetch=FetchType.LAZY) ó @ManyToOne(fetch=FetchType.EAGER) del
    paquete (javax.persistence.ManyToOne).
   @JoinColumn(name=“nombre_del_campo", referencedColumnName=“
    nombre_del_campo") del paquete (javax.persistence.JoinColumn).
RELACIONES ENTRE ENTIDADES II
   @OneToMany(mappedBy = "atributo_maestro", fetch =
    FetchType.LAZY) del paquete (javax.persistence.OneToMany).
RELACIONES ENTRE ENTIDADES III
   @ManyToMany(fetch=FetchType.LAZY) del paquete (javax.persistence.ManyToMany).
   @JoinTable(name = "tabla_intermedia", joinColumns =
    @JoinColumn(name="nombre_del_campo",referencedColumnName="nombre_del_campo"),
    inverseJoinColumns = { @JoinColumn(name="nombre_del_campo",
    referencedColumnName="nombre_del_campo")})
RELACIONES ENTRE ENTIDADES IV
RELACIONES ENTRE ENTIDADES V

•   @OneToOne(fetch=FetchType.LAZY) del paquete
    (javax.persistence.ManyToMany).
RELACIONES ENTRE ENTIDADES VI
•   @OneToOne(fetch=FetchType.LAZY) del paquete
    (javax.persistence.ManyToMany).
ENTIDADES CON LLAVES COMPUESTAS I
ENTIDADES CON LLAVES COMPUESTAS II
ENTIDADES CON LLAVES COMPUESTAS III
OTRAS ANOTACIONES I
   @Transient del paquete (javax.persistence.Transient). Con está anotación el atributo
    no es persistente. (No hace referencia a ninguna columna de la tabla).




   @Lob del paquete (javax.persistence.Lob). Con está anotación se le indica al
    atributo que el contenido de un campo básico será guardado como LOB (Large
    OBject). Si por ejemplo utilizamos esta anotación para marcar un campo que
    contenta un String o caracteres el framework lo mapeará a una columna CLOB
    (Character Large OBject). Si es de otro tipo será mapeado a una columna de tipo
    BLOB (Binary Large OBject).
OTRAS ANOTACIONES II
   @Temporal(TemporalType.DATE)           y     @Temporal(TemporalType.TIME)       del  paquete
    (javax.persistence.Temporal) y (javax.persistence.TemporalType). Con está anotación se indica
    que se debe persistir solos tipos de datos java.util.Date y java.util.Calendar.




   @Max del paquete (org.hibernate.validator.Max). Con está anotación el valor del atributo
    numérico debe ser <= que el máximo indicado.
   @Min del paquete (org.hibernate.validator.Min). Con está anotación el valor del atributivo
    numérico debe ser >= que el máximo indicado.
   @Size del paquete (org.hibernate.validator.Size). Con está anotación el tamaño de un atributo
    array ó collection debe estar dentro del rango.
    @OrderBy(“nombre asc"). Con está anotación se indica el orden en que deben ser obtenidos
    los detalles para un atributo lista. Por defecto el orden será ascendente (ASC) (de menor a
    mayor si el campo es numérico y por orden alfabético si el campo es de tipo texto).

Más contenido relacionado

La actualidad más candente

Constructores en Java
Constructores en JavaConstructores en Java
Constructores en JavaUCE
 
Colecciones en Java
Colecciones en JavaColecciones en Java
Colecciones en JavaRonny Parra
 
Colecciones en java
Colecciones en javaColecciones en java
Colecciones en javaMaîck Ddz
 
REPORTES JASPERREPORT E IREPORT SIN CONEXIÓN A UNA BBDD
REPORTES JASPERREPORT E IREPORT SIN CONEXIÓN A UNA BBDDREPORTES JASPERREPORT E IREPORT SIN CONEXIÓN A UNA BBDD
REPORTES JASPERREPORT E IREPORT SIN CONEXIÓN A UNA BBDDSandra Campos
 
Programación 3: listas y conjuntos en java
Programación 3: listas y conjuntos en javaProgramación 3: listas y conjuntos en java
Programación 3: listas y conjuntos en javaAngel Vázquez Patiño
 
Poo 4 arraylist
Poo 4 arraylistPoo 4 arraylist
Poo 4 arraylistjlmanmons
 
14 colecciones
14 colecciones14 colecciones
14 coleccionesvictdiazm
 
DAW - Estructuras de almacenamiento
DAW - Estructuras de almacenamientoDAW - Estructuras de almacenamiento
DAW - Estructuras de almacenamientovay82
 
Herencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosHerencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosMario Villaseñor
 
Clases en Java y todo lo relacionado
Clases en Java y todo lo relacionadoClases en Java y todo lo relacionado
Clases en Java y todo lo relacionadoJuan Carlos Espinoza
 
Ireport con javabeans
Ireport con javabeansIreport con javabeans
Ireport con javabeansJuank Samueza
 
Persistencia en Java - Serialización
Persistencia en Java - SerializaciónPersistencia en Java - Serialización
Persistencia en Java - SerializaciónCarlos Hernando
 

La actualidad más candente (20)

colecciones en java
colecciones en javacolecciones en java
colecciones en java
 
Constructores en Java
Constructores en JavaConstructores en Java
Constructores en Java
 
Colecciones en Java
Colecciones en JavaColecciones en Java
Colecciones en Java
 
Colecciones en java
Colecciones en javaColecciones en java
Colecciones en java
 
P2C2 Introducción a JEE5
P2C2 Introducción a JEE5P2C2 Introducción a JEE5
P2C2 Introducción a JEE5
 
Colecciones en java
Colecciones en javaColecciones en java
Colecciones en java
 
P2C5 Introducción a JEE5 - II
P2C5 Introducción a JEE5 - IIP2C5 Introducción a JEE5 - II
P2C5 Introducción a JEE5 - II
 
Array list en java, con ejemplos jarroba
Array list en java, con ejemplos   jarrobaArray list en java, con ejemplos   jarroba
Array list en java, con ejemplos jarroba
 
REPORTES JASPERREPORT E IREPORT SIN CONEXIÓN A UNA BBDD
REPORTES JASPERREPORT E IREPORT SIN CONEXIÓN A UNA BBDDREPORTES JASPERREPORT E IREPORT SIN CONEXIÓN A UNA BBDD
REPORTES JASPERREPORT E IREPORT SIN CONEXIÓN A UNA BBDD
 
Introduccion a Doctrine 2 ORM
Introduccion a Doctrine 2 ORMIntroduccion a Doctrine 2 ORM
Introduccion a Doctrine 2 ORM
 
Programación 3: listas y conjuntos en java
Programación 3: listas y conjuntos en javaProgramación 3: listas y conjuntos en java
Programación 3: listas y conjuntos en java
 
Persistence
PersistencePersistence
Persistence
 
Poo 4 arraylist
Poo 4 arraylistPoo 4 arraylist
Poo 4 arraylist
 
14 colecciones
14 colecciones14 colecciones
14 colecciones
 
DAW - Estructuras de almacenamiento
DAW - Estructuras de almacenamientoDAW - Estructuras de almacenamiento
DAW - Estructuras de almacenamiento
 
Herencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosHerencia - Programación Orientada a Objetos
Herencia - Programación Orientada a Objetos
 
Clases en Java y todo lo relacionado
Clases en Java y todo lo relacionadoClases en Java y todo lo relacionado
Clases en Java y todo lo relacionado
 
Ireport con javabeans
Ireport con javabeansIreport con javabeans
Ireport con javabeans
 
Mv vol2 ver5.0(corregido)
Mv vol2 ver5.0(corregido)Mv vol2 ver5.0(corregido)
Mv vol2 ver5.0(corregido)
 
Persistencia en Java - Serialización
Persistencia en Java - SerializaciónPersistencia en Java - Serialización
Persistencia en Java - Serialización
 

Similar a Jpa

Similar a Jpa (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
 
feedback
feedbackfeedback
feedback
 
Jpa
JpaJpa
Jpa
 
T3 - JPA
T3 - JPAT3 - JPA
T3 - JPA
 
Carro De Compras
Carro De ComprasCarro De Compras
Carro De Compras
 
Biblioteca
BibliotecaBiblioteca
Biblioteca
 
Persistencia de datos en JAVA. Conversión JPA
Persistencia de datos en JAVA. Conversión JPAPersistencia de datos en JAVA. Conversión JPA
Persistencia de datos en JAVA. Conversión JPA
 
2introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate022introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate02
 
INTRODUCCION LENGUAJE JAVA
INTRODUCCION LENGUAJE JAVAINTRODUCCION LENGUAJE JAVA
INTRODUCCION LENGUAJE JAVA
 
2) introduccion al lenguaje java
2) introduccion al lenguaje java2) introduccion al lenguaje java
2) introduccion al lenguaje java
 
Poo Java
Poo JavaPoo Java
Poo Java
 
Informe Poo
Informe PooInforme Poo
Informe Poo
 
jsf
jsfjsf
jsf
 
Modulo6.ppt
Modulo6.pptModulo6.ppt
Modulo6.ppt
 
1 1 3 Api De Java
1 1 3 Api De Java1 1 3 Api De Java
1 1 3 Api De Java
 
OCP, JSE 6 Programmer (1z0-851) - Guia practica 3 de 7(ap-is)
OCP, JSE 6 Programmer (1z0-851) - Guia practica 3 de 7(ap-is)OCP, JSE 6 Programmer (1z0-851) - Guia practica 3 de 7(ap-is)
OCP, JSE 6 Programmer (1z0-851) - Guia practica 3 de 7(ap-is)
 
Programacion java basica
Programacion java basicaProgramacion java basica
Programacion java basica
 
Java 5 se (presentación3)
Java 5 se (presentación3)Java 5 se (presentación3)
Java 5 se (presentación3)
 
Persistencia jpa
Persistencia jpaPersistencia jpa
Persistencia jpa
 
Benita ppp unidad 1
Benita ppp unidad 1Benita ppp unidad 1
Benita ppp unidad 1
 

Jpa

  • 1. Ing. Elkin Suárez Esp. Gerencia de Proyectos Candidato MBA edsuarez@uis.edu.co JAVA PERSISTENCE API INGENIERIA WEB
  • 2. ¿ QUE ES JAVA PERSISTENCE API?  Es un modelo de persistencia basado en POJOs para mapear bases de datos relacionales en Java.  Es un modelo de persistencia que usa anotaciones en las entidades, no se requiere usar archivos descriptores XML.  Es un modelo de persistencia que consiste en 4 áreas:  JPA (javax.persistence).  El lenguaje de consultas.  La Java Persistence Criteria API.  La metadata del mapeo objeto/relacional.
  • 3. ENTIDAD I  Es una clase con anotaciones que representa a una tabla de una Base de Datos.  Las anotaciones requeridas son:  @Entity del paquete (javax.persistence.Entity). Con está anotación se le indica al motor de persistencia que la clase es una Entidad.  @Table(name =“nombre_base_datos:nombre_tabla") del paquete (javax.persistence.Table). Con está anotación se le indica el nombre de la tabla y a cual base de datos pertenece.  La entidad debe tener un método get/set para cada atributo.
  • 4. ENTIDAD II  La entidad debe implementar la interfaz Serializable del paquete (java.io) útil para la persistencia de objetos.  La interfaz no tiene métodos solo sirve para identificar de que es serializable.  Cualquier subclase de una clase serializable también lo es.  La entidad serializable debe llevar el siguiente atributo, generado por el IDE Jboss Developer Studio.  Todos los atributos de la entidad deben ser tipo Objeto o Tipo entidad.  La entidad debe sobre escribir los métodos hashCode() y equals(Object obj) de la clase Object, solo para el atributo llave de la entidad.
  • 5. ANOTACIONES BÁSICAS  @Id del paquete (javax.persistence.Id). Con está anotación se identifica el atributo que contiene la persistent identity de la entidad(la llave primaria).  @GeneratedValue(strategy = GenerationType.AUTO) del paquete (javax.persistence.GeneratedValue y javax.persistence.GenerationType). Con está anotación se le indica que el campo llave es autoincremental realizado por el motor de base de datos.  @Column (name= “nombre_del_campo") del paquete (javax.persistence.Column). Con está anotación se le indica el nombre de la columna de la tabla.
  • 6. VALIDACIONES  @NotNull del paquete (org.hibernate.validator.NotNull). Con está anotación el valor del atributo no debe ser null.  @Length del paquete (org.hibernate.validator.Length). Con esta anotación la longitud de un atributo debe estar en el rango.  @Range del paquete (org.hibernate.validator.Range). Con está anotación el valor del atributo numérico debe estar en el rango.  @Email del paquete (org.hibernate.validator.Email). Con está anotación la cadena del atributo representa un patrón email.
  • 7. RELACIONES ENTRE ENTIDADES I  @ManyToOne(fetch=FetchType.LAZY) ó @ManyToOne(fetch=FetchType.EAGER) del paquete (javax.persistence.ManyToOne).  @JoinColumn(name=“nombre_del_campo", referencedColumnName=“ nombre_del_campo") del paquete (javax.persistence.JoinColumn).
  • 8. RELACIONES ENTRE ENTIDADES II  @OneToMany(mappedBy = "atributo_maestro", fetch = FetchType.LAZY) del paquete (javax.persistence.OneToMany).
  • 9. RELACIONES ENTRE ENTIDADES III  @ManyToMany(fetch=FetchType.LAZY) del paquete (javax.persistence.ManyToMany).  @JoinTable(name = "tabla_intermedia", joinColumns = @JoinColumn(name="nombre_del_campo",referencedColumnName="nombre_del_campo"), inverseJoinColumns = { @JoinColumn(name="nombre_del_campo", referencedColumnName="nombre_del_campo")})
  • 11. RELACIONES ENTRE ENTIDADES V • @OneToOne(fetch=FetchType.LAZY) del paquete (javax.persistence.ManyToMany).
  • 12. RELACIONES ENTRE ENTIDADES VI • @OneToOne(fetch=FetchType.LAZY) del paquete (javax.persistence.ManyToMany).
  • 13. ENTIDADES CON LLAVES COMPUESTAS I
  • 14. ENTIDADES CON LLAVES COMPUESTAS II
  • 15. ENTIDADES CON LLAVES COMPUESTAS III
  • 16. OTRAS ANOTACIONES I  @Transient del paquete (javax.persistence.Transient). Con está anotación el atributo no es persistente. (No hace referencia a ninguna columna de la tabla).  @Lob del paquete (javax.persistence.Lob). Con está anotación se le indica al atributo que el contenido de un campo básico será guardado como LOB (Large OBject). Si por ejemplo utilizamos esta anotación para marcar un campo que contenta un String o caracteres el framework lo mapeará a una columna CLOB (Character Large OBject). Si es de otro tipo será mapeado a una columna de tipo BLOB (Binary Large OBject).
  • 17. OTRAS ANOTACIONES II  @Temporal(TemporalType.DATE) y @Temporal(TemporalType.TIME) del paquete (javax.persistence.Temporal) y (javax.persistence.TemporalType). Con está anotación se indica que se debe persistir solos tipos de datos java.util.Date y java.util.Calendar.  @Max del paquete (org.hibernate.validator.Max). Con está anotación el valor del atributo numérico debe ser <= que el máximo indicado.  @Min del paquete (org.hibernate.validator.Min). Con está anotación el valor del atributivo numérico debe ser >= que el máximo indicado.  @Size del paquete (org.hibernate.validator.Size). Con está anotación el tamaño de un atributo array ó collection debe estar dentro del rango.  @OrderBy(“nombre asc"). Con está anotación se indica el orden en que deben ser obtenidos los detalles para un atributo lista. Por defecto el orden será ascendente (ASC) (de menor a mayor si el campo es numérico y por orden alfabético si el campo es de tipo texto).