Repository Interfaces: JpaRepository and CrudRepository
Spring Data JPA eliminates boilerplate DAO code by generating repository implementations at runtime. You declare an interface, extend one of the repository base interfaces, and Spring creates a fully functional implementation — including save, findById, findAll, delete, count, and pagination — without a single line of SQL.