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