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