Repaso
English
Spring, JPA y Java WebIntermedioSPR-16

¿Qué te da una interface repository de Spring Data JPA?

public interface UserRepository extends JpaRepository<User, Long> {
    Optional<User> findByEmail(String email);
}

Opciones

  1. Nada hasta que escribas el SQL de cada método
  2. Métodos CRUD ya hechos y consultas a partir de los nombres de métodos (Opción correcta)
  3. Solo operaciones de lectura, sin forma de guardar datos
  4. 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.

Términos clave

Practica esta pregunta en Repaso