Contenido del curso
Primeros pasos
Spring Data Repositories
- 7

Qué son los Spring Data Repositories
08:39 min - 8

Guardar y Actualizar Registros con Spring Data Repositories
08:34 min - 9

Eliminar elementos con Spring Data JPA: método deleteById
05:36 min - 10

Lazy vs Eager en relaciones JPA
15:09 min - 11

Query Methods en Spring para Consultas Personalizadas
08:27 min - 12

Filtrar pizzas con Containing y Not en JPA
07:27 min - 13

Fechas y listas en query methods de JPA
11:25 min - 14

findTop y Optional en Spring Data JPA
09:30 min - 15

Paginación y Ordenación con Spring Data Repositories
07:39 min - 16

Ordenamiento Dinámico con Paging and Sorting Repository
07:58 min
Personalización de queries
Características avanzadas
Próximos pasos
Cómo crear un proyecto con Spring Initializr
Resumen
Crear un proyecto con Spring Initializr es la forma oficial y más rápida de arrancar una aplicación basada en Spring. Aprenderás a configurar dependencias, abrir el proyecto en IntelliJ IDEA y armar una estructura limpia para trabajar con Spring Data JPA y MySQL. Ideal si das tus primeros pasos con Java backend.
¿Qué es Spring Initializr y cómo se configura un proyecto?
Spring Initializr es la herramienta web oficial que te permite generar proyectos Spring con dependencias preconfiguradas. La encuentras en start.spring.io y desde ahí defines todo lo que tu aplicación necesita antes de escribir una sola línea de código.
Para este proyecto vas a usar Gradle como gestor de dependencias y Java como lenguaje, junto con la versión 3.0.4 de Spring Boot. La configuración base que necesitas es esta:
- Grupo: com.platzi.
- Artefacto: platzi-pizzeria.
- Nombre del paquete: com.platzi.pizza (sin guion ni duplicados).
- Empaquetado: JAR, que genera una aplicación autocontenida.
- Versión de Java: 17.
Un detalle que vale la pena cuidar: el nombre del paquete. Si lo dejas tal cual lo sugiere Spring, terminas con un com.platzi.platzi-pizzeria feo y poco práctico. Mejor déjalo en com.platzi.pizza.
¿Qué es un archivo JAR en Java? Es un paquete autocontenido que agrupa tu código compilado y sus dependencias. Lo ejecutas directamente desde la línea de comandos sin necesidad de un servidor externo.
¿Qué dependencias necesitas para una API REST con Spring Data JPA?
En la parte derecha de Spring Initializr seleccionas las librerías que tu proyecto va a usar. Para una API REST conectada a MySQL con persistencia vía JPA necesitas cuatro dependencias clave.
- Spring Web: te permite construir la API REST y exponer los servicios HTTP.
- Spring Data JPA: facilita persistir datos en SQL usando Java Persistence API con Hibernate como implementación por defecto.
- Lombok: reduce código repetitivo mediante anotaciones como @Getter, @Setter o @Data.
- MySQL Driver: el conector necesario para que tu aplicación hable con una base de datos MySQL.
Una vez listo todo, Spring Initializr te genera un .zip con la estructura inicial. Lo descargas, lo descomprimes y ya tienes tu proyecto listo para abrir.
¿Cómo abrir el proyecto en IntelliJ IDEA sin errores?
Al abrir IntelliJ IDEA, eliges la opción Open y navegas hasta el archivo build.gradle dentro de la carpeta descomprimida. Lo seleccionas y eliges Open as Project. IntelliJ comenzará a descargar dependencias automáticamente gracias a Gradle.
¿Qué hacer si IntelliJ marca error de versión de Java?
Un error muy común aparece cuando IntelliJ intenta usar Java 11 pero tu proyecto exige Java 17. La solución está en dos lugares.
Primero, ve a File > Settings > Build, Execution and Deployment > Build Tools > Gradle y cambia la versión a Java 17. Si no la tienes instalada, puedes descargarla desde el mismo menú.
Segundo, haz clic derecho sobre el proyecto, abre Open Module Settings y dentro de Project asigna también el SDK 17. Aplica los cambios y refresca la sincronización del proyecto. Cuando el build sea exitoso, todo está en orden.
¿Por qué Spring Boot 3 requiere Java 17? Porque Spring Boot 3 abandona el soporte para versiones anteriores de Java y aprovecha funcionalidades modernas del lenguaje, como records y mejoras de rendimiento del JVM.
¿Cómo organizar la estructura de paquetes en un proyecto Spring?
Una buena estructura de carpetas hace que tu código sea más fácil de mantener. Dentro de src/main/java/com/platzi/pizza vas a crear tres paquetes principales al mismo nivel del archivo PlatziPizzeriaApplication.
- persistence: aquí vive todo lo relacionado con la base de datos.
- service: contiene la lógica de negocio de tu aplicación.
- web.controller: agrupa los controladores que exponen los endpoints REST.
Dentro de persistence todavía falta un nivel más de organización. Crea dos subpaquetes: entity, donde irán las clases que mapean tablas de la base de datos, y repository, donde definirás las interfaces que extienden de Spring Data JPA para hacer consultas.
Esta separación por capas, conocida como arquitectura en capas o layered architecture, te ayuda a que cada parte del código tenga una sola responsabilidad. Los controladores reciben peticiones, los servicios procesan reglas de negocio y la capa de persistencia se encarga del acceso a datos.
¿Qué es Hibernate y por qué lo usa Spring Data JPA? Hibernate es un framework de mapeo objeto-relacional (ORM) que traduce objetos Java en filas de base de datos. Spring Data JPA lo usa como motor por defecto para ejecutar consultas sin escribir SQL manualmente.
¿Qué contiene el archivo build.gradle generado?
Al abrir el archivo build.gradle, encuentras toda la configuración que Spring Initializr armó por ti. Ahí están la versión de la aplicación, el grupo, la compatibilidad con JDK 17 y el listado de dependencias.
Verás entradas como spring-boot-starter-data-jpa, spring-boot-starter-web, lombok, el conector de MySQL, el annotation processor de Lombok y una dependencia de test para Spring. Cada una cumple un rol específico y todas se descargan automáticamente la primera vez que sincronizas el proyecto.
Con la estructura lista y las dependencias descargadas, tu proyecto ya está preparado para conectarse a la base de datos en los siguientes pasos. ¿Tuviste algún problema al configurar tu IDE? Cuéntanos en los comentarios qué versión de Java estás usando.