@Test
public void findHelloBy() {
List<Member> helloBy = memberRepository.findHelloBy();
}
해당 코드를 실행하면 정상적으로 작동 하는 것을 알 수 있다.
하지만 조금 의아하기도 하다.
왜냐하면 hello라는 의미없는 문자가 들어갔기 때문이다.
하지만 이는 틀린 문법이 아니다. Spring Data Jpa에서 지원하는 문법이다.
reference doc에서는 다음과 같이 설명하고 있다.
. Any text between find (or other introducing keywords) and By is considered to be descriptive unless using one of the result-limiting keywords such as a Distinct to set a distinct flag on the query to be created or Top/First to limit query results.
find와 By사이에 distinct나 Top/First와 같이 쿼리의 결과를 제한하는 키워드만 안들어가면 어떠한 문자도 들어가도 된다고 명시되어 있다.
참고사항 : findBy는 모두 찾기이다. 그리고 우리가 주로 써왔던 것은 findByMember같은것이다. findMemberBy가 아니였다.
List<Member> findByUserNameAndAgeGreaterThan(String username, int age);