DAM → Acceso a Datos → RA3
RA3 · verificado

RA3 de Acceso a Datos · DAM

Gestiona la persistencia de los datos identificando herramientas de mapeo objeto relacional (ORM) y desarrollando aplicaciones que las utilizan.

Comprobar mi dominio con José →

Contenido verificado asociado a este RA

Introducción a ORM y Configuración del Entorno

Esta unidad introduce el concepto de Mapeo Objeto-Relacional (ORM), explica su necesidad para resolver la discrepancia de impedancia entre objetos y bases de datos relacionales, y guía en la instalación y configuración inicial de una herramienta ORM como Hibernate/JPA en un proyecto Java.

Definición de Ficheros de Mapeo y Entidades

Esta unidad se centra en cómo definir el mapeo entre las clases de objetos Java y las tablas de la base de datos relacional, utilizando anotaciones JPA para modelar entidades, atributos y relaciones.

Mecanismos de Persistencia y Operaciones CRUD

Esta unidad explica cómo aplicar los mecanismos de persistencia para interactuar con los objetos en la base de datos, cubriendo las operaciones CRUD (Crear, Leer, Actualizar, Borrar) utilizando el `EntityManager` de JPA.

Modificación y Recuperación de Objetos Persistentes: Operaciones CRUD, JPQL y SQL Nativo

Esta unidad muestra cómo desarrollar aplicaciones que modifican y recuperan objetos persistentes mediante el EntityManager de JPA (persist, find, merge, remove), y cómo ampliar la recuperación con consultas orientadas a objetos (JPQL/HQL) y, cuando es necesario, SQL nativo. El foco está en dominar el ciclo completo de vida del objeto persistente: crearlo, leerlo, actualizarlo y eliminarlo, además de recuperarlo mediante criterios complejos.

Gestión de Transacciones y Concurrencia

Esta unidad aborda la importancia de la gestión de transacciones en aplicaciones de persistencia, explicando las propiedades ACID, los tipos de transacciones y cómo implementarlas y gestionarlas correctamente con JPA para asegurar la integridad de los datos.

Conceptos clave

ORM (Object-Relational Mapping)Discrepancia de impedanciaJPA (Java Persistence API)HibernateMaven/Gradlepersistence.xmlUnidad de PersistenciaDialecto SQLJDBCEntidad JPAAnotaciones JPAClave primaria (`@Id`, `@GeneratedValue`)Mapeo de columnas (`@Column`)Relaciones (`@OneToOne`, `@OneToMany`, `@ManyToOne`, `@ManyToMany`)Estrategias de carga (Lazy/Eager)Cascada de operaciones (`CascadeType`)EntityManagerEntityManagerFactory

Errores que conviene evitar

  • "ClassNotFoundException" o "NoClassDefFoundError": Causa: Dependencias ORM o JDBC no añadidas o con versiones incorrectas. Corrección: Revisar el `pom.xml` o `build.gradle` y reconstruir el proyecto.
  • "PersistenceException: No persistence unit named '...' found": Causa: El archivo `persistence.xml` no está en la ubicación correcta (`src/main/resources/META-INF/`) o el nombre de la unidad de persistencia no coincide. Corrección: Verificar la ruta y el nombre de la unidad.
  • "SQLException: Access denied for user '...'@'localhost' (using password: YES)": Causa: Credenciales de base de datos incorrectas en `persistence.xml`. Corrección: Revisar usuario, contraseña y URL de conexión.
  • "jakarta.persistence.PersistenceException: No identifier specified for entity": Causa: La clase de entidad no tiene un atributo anotado con `@Id`. Corrección: Añadir `@Id` a la clave primaria.
  • "org.hibernate.InstantiationException: No default constructor for entity": Causa: La clase de entidad no tiene un constructor público sin argumentos. Corrección: Añadir `public MiClase() {}`.
  • "org.hibernate.AnnotationException: mappedBy reference an unknown target entity property": Causa: El valor de `mappedBy` en una relación bidireccional no coincide con el nombre del atributo en la entidad referenciada. Corrección: Verificar que el nombre del atributo sea exacto.
  • "jakarta.persistence.TransactionRequiredException": Causa: Intentar modificar la base de datos sin una transacción activa. Corrección: Iniciar una transacción con `em.getTransaction().begin()` antes de las operaciones de escritura.
  • "jakarta.persistence.OptimisticLockException": Causa: Dos transacciones intentan modificar la misma versión de un registro simultáneamente. Corrección: Implementar control de concurrencia optimista (ej. con `@Version`).

Qué se evalúa en este RA

CE a

Se ha instalado la herramienta ORM.

CE b

Se ha configurado la herramienta ORM.

CE c

Se han definido los ficheros de mapeo.

CE d

Se han aplicado mecanismos de persistencia a los objetos.

CE e

Se han desarrollado aplicaciones que modifican y recuperan objetos persistentes.

CE f

Se han desarrollado aplicaciones que realizan consultas usando el lenguaje SQL.

CE g

Se han gestionado las transacciones.

Canal Estudios es un servicio de Skillback S.L. · NIF B2481724 · Barcelona, España
Aviso legal · Privacidad · Cookies · Términos · Atles de Catalunya