728x90
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 활용 능력을 더욱 높일 수 있습니다.
감사합니다.
728x90
'프레임워크 > SpringBoot' 카테고리의 다른 글
[SpringBoot] 캐릭터 맞히기 게임 사이트 구현하기 (1) | 2024.10.10 |
---|---|
[SpringBoot] AOP로 메서드 호출 로그 남기기 (1) | 2024.09.25 |
[SpringBoot] JPA + Criteria를 이용한 Join 예제 (2) | 2024.09.23 |
[SpringBoot] Apache Kafka 간단한 예제만들기 (0) | 2024.09.19 |
[SpringBoot] 공공데이터포탈 IP 정보검색 구현 (5) | 2024.08.30 |