JPA es una especificación, Hibernate es la implementación de esa especificación y Spring Data JPA es una abstracción que nos permite usar Hibernate y otras facilidades para realizar de manera mucho mas fácil consultas en nuestras bases de datos relacionales. Por eso al trabajar con esta herramienta basta simplemente con heredar los métodos a través de una interfaz y de esta manera podemos usar funciones predefinidas como también crear nuestras propias. Ejemplo :
public interface TestRepository extends JpaRepository<Test, Long> {
Optional<List<Test>> findByName(String name);
}
Aquí vemos una interfaz que hereda los métodos de JpaRepository (save, findById...) y a su vez vemos un metodo (findByName) que permite decirle a nuestro repositorio que al realizar esa consulta vamos a hacer un SELECT a través del campo nombre de la tabla Test.