JPA

(Spring data JPA) 쿼리 메소드란?

쿠카이든 2022. 2. 15. 11:37
728x90
  • 스프링 데이터 JPA의 예
    • 스프링 데이터 JPA는 메소드 이름을 분석해서 JPQL을 생성하고 실행(코드량이 줄어들어 효율성 증가)
public interface MemberRepository extends JpaRepository<Member, Long> {
    List<Member> findByUsernameAndAgeGreaterThan(String username, int age);
}
  • 위와 같이, 메소드 이름으로 쿼리를 생성하는 기능을 쿼리 메소드라고 하며 기능은 Spring 공식 홈페이지에 정리되어 있으며 간단히 정리하면 아래와 같습니다.
  • 스프링 공식문서 참고 - https://docs.spring.io/spring-data/jpa/docs/current/reference/html/
    • 조회: find…By ,read…By ,query…By get…By,
      • 예:) findHelloBy 처럼 ...에 식별하기 위한 내용(설명)이 들어가도 됩니다.
    • COUNT: count…By 반환타입 long
    • EXISTS: exists…By 반환타입 boolean
    • 삭제: delete…By, remove…By 반환타입 long
    • DISTINCT: findDistinct, findMemberDistinctBy
    • LIMIT: findFirst3, findFirst, findTop, findTop3 등..
  • 쿼리 메소드를 쓸 때, 주의해야 할 사항
    • 이 기능은 엔티티의 필드명이 변경되면 인터페이스에 정의한 메서드 이름도 꼭 함께 변경해야 합니다.
      • 이렇게 애플리케이션 로딩 시점에 오류를 인지할 수 있는 것이 스프링 데이터 JPA의 매우 큰 장점입니다. (보다 빠른 대처에 용이, 시스템 운영 시 알 수 없는 오류가 발생하는 것보다 훨씬 나은 상황 연출)
728x90

'JPA' 카테고리의 다른 글

(스프링 시큐리티)UserDetailsService, UserDetail  (0) 2022.02.17
(스프링 데이터 JPA) 페이징과 정렬  (0) 2022.02.15
스프링 데이터 JPA 란?  (0) 2022.02.15
QueryDSL 소개  (0) 2022.02.15
페치 조인(fetch join) 의 활용  (0) 2022.02.14