📄️ Cómo Spring habla con las bases de datos
Antes de escribir repositories y clases de entidades, es útil entender qué está pasando en las capas inferiores. Spring Boot hace que el acceso a bases de datos se sienta sin esfuerzo, pero hay un verdadero stack debajo. Conocerlo te salva cuando las cosas se rompen, y se van a romper.
📄️ Ingeniería inversa de entidades JPA
El Problema
📄️ Uso de repositorios JPA
En el documento anterior configuramos la generación de entidades en tiempo de build desde el esquema Sakila. Las entidades JPA existen ahora, pero nada en la aplicación las usa todavía. Este documento las conecta en la arquitectura hexagonal para que la app pueda consultar la base de datos, convertir resultados a modelos de dominio, y manejar el caso "no encontrado" limpiamente.
📄️ Database Setup
En las secciones anteriores vimos cómo Spring se comunica con las bases de datos y cómo generar entidades JPA. Ahora es momento de conectar una base de datos real. Vamos a reemplazar H2 (la base de datos embebida) por PostgreSQL 17 y usaremos Flyway para manejar las migraciones de esquema.
📄️ Paginación
Ahora mismo el endpoint GET /films devuelve todas las películas en una sola respuesta. Eso funciona bien con un dataset pequeño, pero en producción una tabla puede tener miles o millones de filas. Enviarlas todas de una sola vez desperdicia ancho de banda, aumenta los tiempos de respuesta, y pone carga innecesaria tanto en el servidor como en el cliente.