Spring Data Repositories and Query Methods
Extend JpaRepository, define query methods by naming conventions, and use @Query for custom JPQL.
Spring Data JPA Repositories
Extend JpaRepository<Entity, ID> to get CRUD, paging, and sorting methods for free. Spring generates the implementation at startup — no SQL or DAO boilerplate required.
public interface UserRepository extends JpaRepository<User, Long> {
// Free: findAll, findById, save, delete, count, existsById, etc.
}Derived Query Methods
Spring Data generates queries from method names. The naming convention follows: findBy + property + optional conditions.
public interface UserRepository extends JpaRepository<User, Long> {
List<User> findByStatus(UserStatus status);
Optional<User> findByEmail(String email);
List<User> findByAgeGreaterThanAndStatusOrderByNameAsc(int age, UserStatus s);
boolean existsByEmail(String email);
long countByStatus(UserStatus status);
}All lessons in this course
- Entity Mapping with JPA Annotations
- Spring Data Repositories and Query Methods
- One-to-Many and Many-to-Many Relationships
- Pagination, Sorting, and Projections