¿Qué te da una interface repository de Spring Data JPA?
public interface UserRepository extends JpaRepository<User, Long> {
Optional<User> findByEmail(String email);
}Opciones
- Nada hasta que escribas el SQL de cada método
- Métodos CRUD ya hechos y consultas a partir de los nombres de métodos (Opción correcta)
- Solo operaciones de lectura, sin forma de guardar datos
- Una página web para explorar los datos de la base de datos
Respuesta
Métodos CRUD ya hechos (save, findById, findAll, deleteById) más consultas generadas a partir de nombres de métodos como findByEmail
Por qué
Solo declaras una interface. Al arrancar, Spring Data crea la implementación por ti.
JpaRepository<User, Long> da métodos CRUD, paginación y ordenación. Los nombres de métodos como findByEmail o findByAgeGreaterThanAndActiveTrue se analizan y se convierten en consultas automáticamente (derived queries).
Para consultas complicadas, usa @Query("select ...") con JPQL o SQL nativo.
Recuerda
Declara la interface; Spring escribe la implementación.