JPA 쿼리 생성 규칙에 대해 알아보자.
JpaRepository를 상속받은 리포지토리에서, findById 메소드는 이미 존재하므로 별 다른 선언이나 작성 없이 사용할 수 있다. 하지만 우리가 작성한 엔티티의 속성에 대해서는 기본으로 존재할 수 없다.
따라서 우리는 findByName,findByStudentId와 같이 필요한 메소드를 인터페이스에 선언하여 사용할 수 있다.
👉🏻이 때, 선언만 하고 메소드를 직접 작성하지 않아도 스프링에 의해 자동 생성된다.
리포지토리 메소드를 선언할 때의 메소드명은 쿼리문의 where 조건을 결정하는 기준이 되므로 규칙에 따라 작성해야한다.
JPA 쿼리 생성 규칙은 다음과 같다.
| 항목 | 예제 | 설명 |
|---|---|---|
| And | findByXAndY(String X, String Y) | 여러 컬럼을 and 로 검색 |
| Or | findByXOrY(String X, String Y) | 여러 컬럼을 or 로 검색 |
| Between | findByXDateBetween(LocalDateTime fromDate, LocalDateTime toDate) | 컬럼을 between으로 검색 |
| LessThan | findByXLessThan(Integer X) | 작은 항목 검색 |
| GreaterThanEqual | findByXGraterThanEqual(Integer X) | 크거나 같은 항목 검색 |
| Like | findByXLike(String X) | like 검색 |
| In | findByXIn(String[] X) | 여러 값중에 하나인 항목 검색 |
| OrderBy | findByXOrderByCreateDateAsc(String X) | 검색 결과를 정렬하여 전달 |
참고 : https://docs.spring.io/spring-data/jpa/reference/jpa/query-methods.html
https://wikidocs.net/160890