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

인프런 커뮤니티 질문&답변

8013ksm님의 프로필 이미지
8013ksm

작성한 질문수

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

스프링 데이터 JPA

스프링 데이터 JPA 실습 중 질문

해결된 질문

작성

·

331

0

안녕하세요!

스프링 데이터 JPA 강의에 따라 실습을 하던 중 오류를 해결하는 과정에서 궁금증이 생겨 질문드립니다!!


스프링 데이터 JPA 실습 중 오류가 생겨서 확인해보니

nested exception is org.springframework.beans.factory.BeanCreationException 이었고, 그 중
defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration

문제였습니다!

 

이전 실습을 진행하면서 실습 코드와 달랐던 부분이
findById를 findByID로 사용한 것이었는데, 그 전까지는 문제가 안 생기다가 스프링 데이터 JPA 실습에서 오류가 생겼습니다!

일단 findById로 변수명을 바꿔주니 해결이 되었습니다.

 

그런데 변수명을 findByID 그대로 사용하고, SpringDataJpaMemberRepository에 오버라이드 함수로 넣어줘도 해결되지 않을까 하는 생각해 해봤으나, 똑같은 오류가 발생했습니다.

제가 강의를 듣고 이해한 바로는 JpaRepository 에 구현되지 않은 함수를 사용하기 위해서는 SpringDataJpaMemberRepository에 오버라이드로 넣어주기만 하면 된다고 생각했는데, findByID는 되지 않는 이유가 궁금합니다!!

id는 기본 값으로 들어가야 하기 때문일까요?

아니면, 제가 잘못 이해한 것인가요?

답변 1

2

안녕하세요. 8013ksm님, 공식 서포터즈 OMG입니다.
.

스프링데이터JPA를 사용하면 별도의 코드를 작성하지 않아도 메서드를 호출할 수 있지만,

발생한 상황처럼 기본적인 규칙을 따라야 호출할 수 있습니다.

엔티티 필드

private Long id; => findById => findBy + (필드의 첫글자 대문자)

private String username; => findByUsername;
스프링데이터JPA와 관련하여 영한님의 스프링데이터JPA 강의를 참고하시면 많은 도움 되리라 생각합니다.

 

.
감사합니다.

8013ksm님의 프로필 이미지
8013ksm
질문자

아하 감사합니다!!

8013ksm님의 프로필 이미지
8013ksm

작성한 질문수

질문하기