SlideShare una empresa de Scribd logo
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

DOCX
Elementos de una clase
PDF
Java colecciones
PPTX
Programación 3: clases derivadas y polimorfismo
PDF
Tutorial weka
PDF
[ES] Manejadores de persistencia
PPT
2.android java
PPTX
Constructores en java(grupo 8)
DOCX
5.1 estructura de una clase.
Elementos de una clase
Java colecciones
Programación 3: clases derivadas y polimorfismo
Tutorial weka
[ES] Manejadores de persistencia
2.android java
Constructores en java(grupo 8)
5.1 estructura de una clase.

La actualidad más candente (20)

PDF
colecciones en java
PPTX
Constructores en Java
 
PPT
Colecciones en Java
PDF
Colecciones en java
PPTX
P2C2 Introducción a JEE5
PPTX
Colecciones en java
PPTX
P2C5 Introducción a JEE5 - II
PDF
Array list en java, con ejemplos jarroba
PDF
REPORTES JASPERREPORT E IREPORT SIN CONEXIÓN A UNA BBDD
PDF
Introduccion a Doctrine 2 ORM
PPTX
Programación 3: listas y conjuntos en java
PPT
Persistence
PPT
Poo 4 arraylist
PDF
14 colecciones
PPTX
DAW - Estructuras de almacenamiento
PPT
Herencia - Programación Orientada a Objetos
PPTX
Clases en Java y todo lo relacionado
PDF
Ireport con javabeans
PPT
Mv vol2 ver5.0(corregido)
PDF
Persistencia en Java - Serialización
colecciones en java
Constructores en Java
 
Colecciones en Java
Colecciones en java
P2C2 Introducción a JEE5
Colecciones en java
P2C5 Introducción a JEE5 - II
Array list en java, con ejemplos jarroba
REPORTES JASPERREPORT E IREPORT SIN CONEXIÓN A UNA BBDD
Introduccion a Doctrine 2 ORM
Programación 3: listas y conjuntos en java
Persistence
Poo 4 arraylist
14 colecciones
DAW - Estructuras de almacenamiento
Herencia - Programación Orientada a Objetos
Clases en Java y todo lo relacionado
Ireport con javabeans
Mv vol2 ver5.0(corregido)
Persistencia en Java - Serialización
Publicidad

Similar a Jpa (20)

PPT
PDF
Introducción práctica a JPA2
PPT
feedback
PDF
Persistencia de datos en JAVA. Conversión JPA
ODP
Introducción a Java Persistence API
PPSX
Java Persistence Api (Jpa)
PDF
Persistencia de datos en Java
PDF
Introduccion a JPA
PPTX
Persistencia jpa
PDF
Persistencia avanzada de datos en Java. JPA
PPSX
Persistencia De Objetos(Hibernate)
PPSX
Persistencia de objetos con Hibernate
PDF
TopLink Jpa Parte 1 - Leonardo Torres Altez
PPT
Persistencia de datos_hibernate_arquitecturas_de_software
PDF
Taller d Sistemas Informáticos Clase 08-JPA.pdf
PPTX
All about Spring Data JPA and similar concepts
PDF
Hibernate - JPA @luce 5
PDF
Manualjpa
Introducción práctica a JPA2
feedback
Persistencia de datos en JAVA. Conversión JPA
Introducción a Java Persistence API
Java Persistence Api (Jpa)
Persistencia de datos en Java
Introduccion a JPA
Persistencia jpa
Persistencia avanzada de datos en Java. JPA
Persistencia De Objetos(Hibernate)
Persistencia de objetos con Hibernate
TopLink Jpa Parte 1 - Leonardo Torres Altez
Persistencia de datos_hibernate_arquitecturas_de_software
Taller d Sistemas Informáticos Clase 08-JPA.pdf
All about Spring Data JPA and similar concepts
Hibernate - JPA @luce 5
Manualjpa
Publicidad

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).