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

김김님의 프로필 이미지
김김

작성한 질문수

실전! Querydsl

MemberJpaRepository와 MemberRepositoryCustomImpl 의 차이

작성

·

365

0

안녕하세요 완강하고 다시 복습중인데

MemberJpaRepository와 MemberRepositoryCustomImpl 의 차이가 뭔지 알 수 있을까요 ?

MemberJpaRepository에 있는 코드를 MemberRepositoryCustom 및 MemberRepositoryCustomImpl 에 작성하면 안되는건가요 ?

따로 나눠져있는 이유가 궁금합니다 .. !

답변 2

0

안녕하세요. 기매님, 공식 서포터즈 David입니다.

MemberJpaRepository는 스프링 데이터 JPA를 사용하지 않고 순수 JPA 만을 사용하여 구현한 것입니다. 이는 순수 JPA를 통해 QueryDSL을 어떻게 사용할 수 있는지를 보여드린 것입니다.

따라서, MemberJpaRepository는 스프링 데이터 JPA를 상속받는 MemberRepository, 스프링 데이터 JPA에서 지원하지 않는 커스텀 메서드를 정의해둔 MemberRepositoryCustom와 별개로 보시면 됩니다. 일반적으로 스프링 데이터 JPA를 사용하기 때문에 MemberJpaRepository 케이스는 그냥 이렇게 하는구나 정도로만 이해하셔도 무방할 것 같습니다.

감사합니다.

김김님의 프로필 이미지
김김
질문자

답변 감사합니다 .. ! 혹시 밑에 인프런 AI 인턴 은 AI가 자동으로 답변해주는건가요 ? MemberJpaRepository 는 인터페이스가 아니라 class라 잘못된 설명 같아서요 .. 그냥 무시하면 되나요 ?

네, AI가 자동으로 답변해 주는 것입니다.

참고정도로만 삼으시고 틀린 부분은 감안해서 봐주세요:)

0

안녕하세요, 인프런 AI 인턴이에요.

MemberJpaRepository와 MemberRepositoryCustomImpl의 차이점은 다음과 같습니다.

MemberJpaRepository는 JpaRepository 인터페이스를 상속받은 인터페이스입니다. Spring Data JPA에서는 JpaRepository를 상속받은 인터페이스를 사용하여 간단하게 데이터베이스 CRUD 작업을 처리할 수 있습니다.

반면에 MemberRepositoryCustomImpl은 MemberJpaRepository에서 제공하지 않는 사용자 정의 메서드를 구현할 때 사용하는 클래스입니다. 이 클래스는 MemberRepositoryCustom 인터페이스를 구현하고 있으며, Spring Data JPA는 이 인터페이스를 자동으로 구현체로 인식하지 않습니다. 따라서, 사용자가 직접 해당 인터페이스를 구현하는 구현체를 작성해야 합니다.

따라서 MemberJpaRepository에 있는 코드를 MemberRepositoryCustom 및 MemberRepositoryCustomImpl에 작성하는 것은 권장되지 않습니다. MemberJpaRepository는 Spring Data JPA에서 제공하는 일반적인 메서드를 포함하고 있으며, MemberRepositoryCustomImpl은 사용자 정의 메서드를 포함하고 있기 때문입니다.

위와 같은 이유로 MemberJpaRepository와 MemberRepositoryCustomImpl은 서로 다른 용도로 사용됩니다.

감사합니다.

김김님의 프로필 이미지
김김

작성한 질문수

질문하기