인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

Inflearn Community Q&A

labstudiog3632's profile image
labstudiog3632

asked

Microservices Application (MSA) Developed with Spring Cloud

Users Microservice - User Query ③

userRepository.findByUserId(userId) 구문 관련해서 질문이있습니다.

Written on

·

912

0

안녕하세요. 강사님 수업을 듣고있는 학생입니다.
 
수업을 듣고 코드를 보다보니 궁금한 부분이 있어서요.
 
UserController에서 userRepository.findByUserId(userId)를 사용하고 있는데, userRepository의 interface에 findByUserId(userId) 함수가 사용될것이라고 정의되어있는것을 확인했고,
 
제 생각대로라면
findByUserId(userId)에 대한 함수 본체에 대한 구성정의가 필요할것같은데 userRepository는 impl 클래스가 따로 존재하지 않고
 
userRepository의 interface에서 CRUD를 상속받는 class에 따라갔는데도 findByUserId에 대한 함수이름으로 정의된게 없는데
 
java에서는 어떻게 알고 conroller.class에서 findByUserId의 기능을 수행할수있는건지 궁금합니다.
 
 
JPAspring-bootarchitecturespring-cloudKafkamsa

Answer 1

4

kenneth님의 프로필 이미지
kenneth
Instructor

안녕하세요, 이도원입니다. 

JPA를 사용하는 장점은 메소드의 이름으로 Query를 실행할 수 있다는 점입니다. CRUD 인터페이스를 상속받은 다음 find로 시작되는 메소드를 작성하게 되면, 해당 메소드의 이름을 테이블 컬럼명과 매칭하여 해당 SELECT Query를 실행할 수 있습니다. 예를 들어, findByLastnameAndFirstname 과 같은 메소드는 다음과 같은 Query과 실행됩니다. 

where x.lastname = ?1 and x.firstname = ?2

https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#reference 에서 Query Creation 부분을 참고해 보시면 여러 패턴이 나와 있으니 참조하시기 바랍니다. 

감사합니다. 

 

labstudiog3632's profile image
labstudiog3632

asked

Ask a question