ORM (Mapeo objeto-relación):
El mapeo objeto-relacional (más conocido por su nombre en inglés, Object-Relational mapping, o sus siglas O/RM, ORM, y O/R mapping) es una técnica de programación para convertir datos entre el sistema de tipos utilizado en un lenguaje de programación orientado a objetos y la utilización de una base de datos relacional como motor de persistencia. En la práctica esto crea una base de datos orientada a objetos virtual, sobre la base de datos relacional. Esto posibilita el uso de las características propias de la orientación a objetos (básicamente herencia y polimorfismo). Hay paquetes comerciales y de uso libre disponibles que desarrollan el mapeo relacional de objetos, aunque algunos programadores prefieren crear sus propias herramientas ORM.
JPA:
Es un framework del lenguaje de programación Java que maneja datos relacionales en aplicaciones usando la Plataforma Java en sus ediciones Standard (Java SE) y Enterprise (Java EE).
La JPA se origina a partir del trabajo del JSR 220 Expert Group el cual correspondía a EJB3. JPA 2.0 sería el trabajo del JSR 317 y posteriormente JPA 2.1 en el JSR 338.
Persistencia en este contexto cubre tres áreas:
- La API en sí misma, definida en el paquete javax.persistence
- El lenguaje de consulta Java Persistence Query Language (JPQL).
- Metadatos objeto/relacional.
Entidad de persistencia en JPA:
El EntityManager cada tanto sincroniza los cambios del contexto de persistencia a la base de datos, en un proceso llamado flush.
La trampa del ejemplo anterior está en que cuando hacemos find (y también cuando hacemos consultas JPQL o Criteria) el EntityManager nos devuelve un objeto de su contexto de persistencia ¡y es por eso que los cambios que hicimos terminaron en la base de datos! Ahora sabemos que el EntityManager es el que persistió los cambios que hicimos.
Relaciones entre entidades JPA:
Generalmente las relaciones son más efectivas entre las tablas en la base de datos. Aquí las clases de entidad son tratadas como tablas relacionales (concepto de JPA), por lo tanto, las relaciones entre las clases de entidad son los siguientes:
- @ManyToOne Relation
- @OneToMany Relation
- @OneToOne Relation
- @ManyToMany Relation
Existen ocasiones en donde se requieres marcar más de un campo como @Id, conformando con esto una llave primaría compuesta. En estos casos se requiere complementar la entidad con una clase adicional que será utilizada como ID y además tendrá que ser referenciada desde la clase donde se requiere una llave compuesta. La utilización de @IdClass es una de las dos opciones para definir llaves primarias compuestas, y esta consiste en crear una clase adicional únicamente con los campos que corresponden a la llave primaria.
Gestión de base de datos (utilizando el asistente)
- Inserción, actualizacion, eliminación y busqueda de datos:
No hay comentarios:
Publicar un comentario