목차
1. Spring Data JPA 인터페이스
1. Spring Data JPA 인터페이스
1) Spring Data JPA 인터페이스
- 단계별로 필요한 기능까지만 사용 가능
- Repository: 기본 repository 인터페이스. 어떤 메소드도 제공하지 않음
- CrudRepository: Repository + CRUd 기능 제공
- PagingAndSortingRepository: CrudRepository + 페이징, 정렬 기능 제공
- JpaRepository: PagingAndSortingRepository + Spring Data JPA repository 전체 기능
2) Query method
- 인터페이스에 작성한 메소드 이름이 곧 쿼리 표현이 됨
- ex:
List<Event> findByEventStatusAndEventNameOrCapacity(String eventStatus, String eventName, Integer Capacity);
- 다이나믹 쿼리를 만들 수는 없음
- 사용 가능한 키워드
- distinct, and, or, is, not, between, lessThen, lessThanEqual, greaterThen, greaterThenEqual
- null, isNotNull, like, startingWith, endingWith, containing, orderBy, in, true, false, ignoreCase
- join 등 복잡한 표현은 불가
3) 몇 가지 애노테이션들
@Param
: 쿼리 메소드 입력 파라미터에 사용하여 애노테이션 기반 파라미터 바인딩할 때 사용
@Query
: 직접 JPQL을 작성하고 싶을 때 사용
하지만 되도록 사용하지 말 것. Spring Data JPA를 사용한다는 것은 이것을 몰라도 된다는 의미이기 떄문이다.
@NoRepositoryBean
: 빈으로 등록하고 싶지 않은 인터페이스를 지정할 수 있음
- 특정 쿼리 메소드를 기본 메소드로 지정하는 방식으로 운영 가능
- 특정 메소드를 선택적으로 사용하거나 api에 노출하고자 할 때도 사용하는 테크닉