4. Persistencia con ORM

4.1. ¿De qué va este tema?

Utilizaremos una herramienta de mapeo objeto-relacional para conservar objetos. Haremos explícitos el mapeo, los estados y las transacciones, y compararemos el componente ORM con el acceso directo mediante conectores.

Dedicación orientativa: unas 40 horas. El tiempo que necesites dependerá de tus conocimientos previos y de las dificultades que encuentres.

Punto de partida: SQL, componente relacional y control de transacciones.

4.2. Clases

4.2.1. Qué aporta un ORM

  • Objetos, tablas, identidad y conversiones manuales.

  • Mapeo frente a almacenamiento y consulta.

Actividad

  • Capacidades, dependencias, ventajas y límites de la herramienta.

  • Diferencias entre ORM, gestor y lenguaje SQL.

Actividad

4.2.2. Instalar un entorno ORM reproducible

  • Herramienta, controlador y dependencias compatibles.

  • Preparación del proyecto y de su entorno de ejecución.

Actividad

  • Ejecución de comprobación y diagnóstico de instalación.

  • Errores de carga y versión frente a acceso al gestor.

Actividad

4.2.3. Configurar la persistencia

  • Conexión externa, dialecto, registro y parámetros.

  • Unidad de persistencia y separación de entornos.

Actividad

  • Sesión o contexto, apertura y cierre.

  • Comprobación del acceso y errores de configuración.

Actividad

4.2.4. Mapear identidad y propiedades

  • Entidad, identificador, tipos, columnas y nulabilidad.

  • Correspondencia entre clase y estructura persistente.

Actividad

  • Fichero de mapeo explícito y anotaciones.

  • Configuraciones equivalentes frente a configuraciones contradictorias.

Actividad

4.2.5. Relaciones y colecciones

  • Cardinalidad, claves y propietario de la relación.

  • Correspondencia entre asociación de objetos y relación persistente.

Actividad

  • Colecciones, navegación, carga y cascadas básicas.

  • Recuperación de objetos relacionados y comprobación de duplicados.

Actividad

4.2.6. Mapear una jerarquía

  • Herencia del dominio y estrategias de tablas.

  • Identidad y propiedades comunes y específicas.

Actividad

  • Configuración de la jerarquía y recuperación polimórfica.

  • Comprobación de tipo y atributos específicos.

Actividad

4.2.7. Estados del objeto y contexto

  • Objetos transitorios, gestionados, separados y eliminados.

  • Identidad y ciclo de vida de la sesión.

Actividad

  • Sincronización, cierre y estado persistido.

  • Diferencia entre sincronizar y confirmar una transacción.

Actividad

4.2.8. Modificar y recuperar objetos

  • Alta, búsqueda y actualización de objetos persistentes.

  • Operaciones sobre identidad existente y objetos ausentes.

Actividad

  • Eliminación y efectos sobre relaciones.

  • Pruebas comunes y comprobación independiente de la caché.

Actividad

4.2.9. Consultas del ORM y SQL

  • Lenguaje propio, parámetros y proyección.

  • Resultado de objetos frente a resultado de valores.

Actividad

  • Consulta SQL explícita dentro del contexto ORM.

  • Tipos, conversión de resultados y comparación semántica.

Actividad

4.2.10. Transacciones con objetos persistentes

  • Límites de transacción, contexto y sincronización.

  • Agrupación de modificaciones de una operación de negocio.

Actividad

  • Error, rollback y estado de objetos en memoria.

  • Recarga y comprobación del estado definitivo.

Actividad

4.2.11. Un componente basado en ORM

  • Contrato, límites de sesión y objetos retornados.

  • Separación entre dominio y dependencias del proveedor.

Actividad

  • Adaptador, configuración y pruebas comunes.

  • Sustitución del componente basado en conectores.

Actividad

4.2.12. Comparar y revisar las dos implementaciones

  • Configuración, mapeo y diferencias de ejecución.

  • Decisiones tomadas en conectores y ORM.

Actividad

  • Comportamiento, consultas y transacciones.

  • Diagnóstico de discrepancias con pruebas ya elaboradas.

Actividad

Test de autoevaluación

Actividad final integradora