Spring Data Repositories
Spring Data repositories, CrudRepository vs JpaRepository, consultas personalizadas, @EntityGraph, proyecciones
1¿Cuál es la diferencia principal entre JpaRepository y CrudRepository?
¿Cuál es la diferencia principal entre JpaRepository y CrudRepository?
Respuesta
JpaRepository extiende tanto CrudRepository como PagingAndSortingRepository, agregando métodos específicos de JPA como flush(), saveAndFlush() y deleteInBatch(). CrudRepository solo proporciona las operaciones CRUD básicas (save, findById, delete). Usar JpaRepository da acceso a todas las funcionalidades JPA avanzadas sin necesidad de combinar varias interfaces.
2¿Cuál es el rol de PagingAndSortingRepository en la jerarquía de repositories?
¿Cuál es el rol de PagingAndSortingRepository en la jerarquía de repositories?
Respuesta
PagingAndSortingRepository extiende CrudRepository agregando los métodos findAll(Pageable) y findAll(Sort) para la paginación y el ordenamiento. Esto permite recuperar datos por páginas con Page/Slice y ordenar los resultados. JpaRepository extiende esta interfaz, ofreciendo así paginación, ordenamiento y funcionalidades específicas de JPA en una sola interfaz.
3¿Cuál es la jerarquía correcta de las interfaces de repository de Spring Data?
¿Cuál es la jerarquía correcta de las interfaces de repository de Spring Data?
Respuesta
La jerarquía correcta es Repository (base) → CrudRepository (CRUD) → PagingAndSortingRepository (paginación/ordenamiento) → JpaRepository (específico de JPA). Cada nivel agrega funcionalidades: CrudRepository agrega save/delete, PagingAndSortingRepository agrega paginación/ordenamiento, y JpaRepository agrega flush/batch. Esta arquitectura permite elegir el nivel de funcionalidades necesario.
¿Qué método de JpaRepository permite sincronizar inmediatamente los cambios con la base de datos?
¿En qué caso conviene preferir CrudRepository en lugar de JpaRepository?
+22 preguntas de entrevista
Otros temas de entrevista Spring Boot
Spring Core - IoC & DI
Spring Boot Auto-Configuration
Spring Boot Starters
Application Properties & YAML
Logging con SLF4J y Logback
Spring Boot DevTools
Spring MVC Basics
Spring REST Controllers
Request & Response Handling
Manejo de excepciones
Bean Validation
Fundamentos de Spring Data JPA
Entidades JPA y relaciones
Consultas JPA
Fundamentos de Spring Security
Spring Boot Actuator
Pruebas unitarias con JUnit y Mockito
Testing en Spring Boot
Profiles y Environment
RestTemplate y WebClient
Async y Scheduling
Caching con Spring
Spring WebFlux (Reactive)
Transacciones de Spring
Autenticación y autorización avanzadas
JWT y seguridad stateless
OAuth2 y Authorization Server
Spring Boot y Docker
Microservices con Spring
Spring Cloud Config
Optimización del rendimiento
GraalVM Native Images
Domina Spring Boot para tu próxima entrevista
Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.
Empieza gratis