- CrudRepository — save, findById, findAll, deleteById, count
- PagingAndSortingRepository — adds findAll(Pageable) and findAll(Sort)
- JpaRepository — extends both, plus flush(), saveAndFlush(), deleteInBatch()
- Default to JpaRepository unless you have a specific reason not to
CrudRepository vs JpaRepository
Both give you basic CRUD operations — JpaRepository adds JPA-specific extras like pagination, sorting and batch operations.