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 등..
- 조회: find…By ,read…By ,query…By get…By,
- 쿼리 메소드를 쓸 때, 주의해야 할 사항
- 이 기능은 엔티티의 필드명이 변경되면 인터페이스에 정의한 메서드 이름도 꼭 함께 변경해야 합니다.
- 이렇게 애플리케이션 로딩 시점에 오류를 인지할 수 있는 것이 스프링 데이터 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 |