0Pricing
Java Academy · Lesson

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

  1. Entity Mapping with JPA Annotations
  2. Spring Data Repositories and Query Methods
  3. One-to-Many and Many-to-Many Relationships
  4. Pagination, Sorting, and Projections
← Back to Java Academy