티스토리 뷰

Spring Data JPA는 쿼리를 메서드 이름만으로 작성할 수 있는 강력한 기능을 제공합니다. 복잡한 SQL을 작성하지 않고도 데이터를 쉽게 조회, 수정, 삭제할 수 있는 이 기능은 개발 생산성을 크게 향상시킵니다. 이번 포스팅에서는 findBy, countBy, deleteBy 등의 다양한 키워드와 그 조합을 알아보고, 실제 예제를 통해 활용 방법을 소개하겠습니다.

 

1. findBy

  • 특정 조건을 만족하는 엔티티(혹은 엔티티의 리스트)를 조회할 때 사용
// username으로 User 리스트를 조회
List<User> findByUsername(String username);

 

2. existsBy

  • 데이터베이스에 존재하는지 체크
// 이메일이 데이터베이스에 이미 존재하는지 확인
boolean existsByEmail(String email);

 

3. countBy

  • 특정 조건을 만족하는 엔티티의 수를 반환
// 특정 이메일을 가진 사용자의 수를 반환
long countByEmail(String email);

 

4. deleteBy

  • 특정 조건을 만족하는 엔티티를 삭제
// username으로 사용자 삭제
void deleteByUsername(String username);

 

5. readBy

  • findBy와 동일하게 작동하며, 데이터를 읽어올 때 사용
// 특정 이메일을 가진 사용자를 조회
User readByEmail(String email);

 

6. getBy

  • findBy와 유사하며, 주로 단일 결과를 기대할 때 사용
// 특정 username을 가진 사용자 조회
User getByUsername(String username);

 

7. Between

  • 범위 내의 값을 검색
// total 값이 min과 max 사이인 주문 찾기
List<Order> findByTotalBetween(Double min, Double max);

 

8. LessThan, LessThanEqual

  • 특정 값보다 작은 경우
// price가 특정 값보다 작은 상품 찾기
List<Product> findByPriceLessThan(Double price);

 

9. GreaterThan, GreaterThanEqual

  • 특정 값보다 큰 경우
// price가 특정 값 이상인 상품 찾기
List<Product> findByPriceGreaterThanEqual(Double price);

 

10. Like

  • 특정 패턴과 일치하는 값을 찾을 때 사용
// username이 특정 패턴과 일치하는 사용자 찾기
List<User> findByUsernameLike(String pattern);

 

11. IsNull, IsNotNull

  • 필드가 NULL인지 또는 NULL이 아닌지 검사
// total이 NULL인 주문 찾기
List<Order> findByTotalIsNull();

 

12. OrderBy

  • 정렬 조회
// email로 조회된 결과를 username 오름차순 정렬
List<User> findByEmailOrderByUsernameAsc(String email);

 

Spring Data JPA의 쿼리 메서드 키워드를 활용하면 복잡한 SQL을 직접 작성할 필요 없이 간단하고 직관적인 코드를 작성할 수 있습니다. 프로젝트 요구사항에 맞는 키워드를 조합하여 JPA 활용 능력을 더욱 높일 수 있습니다.

감사합니다.

최근에 올라온 글
Total
Today
Yesterday