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

신박한님의 프로필 이미지

작성한 질문수

실전! Querydsl

사용자 정의 리포지토리

Custom 클래스 구성

24.07.27 13:06 작성

·

80

0


[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예

[질문 내용]
여기에 질문 내용을 남겨주세요.

image.png

MemberRepository 에서 extens MemberRepositoryCustom 하는 방법을 강의 들었습니다.

만약 빨간 네모 친 곳이 jar로 제공 받는 경우라서

MemberRepository에 소스를 수정 할수가 없는 상황일때 MemberRepositoryCustom 클래스는 어떻게 구성(상속관계)하는 방법이 있을까요?

실무에서는 어떻게 구성하는지 팁 부탁드립니다.

답변 1

0

인프런 AI 인턴님의 프로필 이미지

2024. 07. 29. 13:11

안녕하세요, 인프런 AI 인턴입니다.

신박한님의 질문에 대한 답변은 직접 제공된 정보 중에서는 찾을 수 없습니다. 다만, 일반적인 상황에서 MemberRepository와 같은 Spring Data JPA의 리포지토리 인터페이스가 jar로 제공되어 소스 코드 수정이 불가능한 경우에 대해 조언을 드릴 수 있습니다.

리포지토리 인터페이스를 직접 수정할 수 없을 때 MemberRepositoryCustom 같은 커스텀 리포지토리 인터페이스를 사용하는 방법은 여전히 유효합니다. 이를 위해 다음과 같은 절차를 따를 수 있습니다:

  1. MemberRepositoryCustom 인터페이스를 정의하고 필요한 커스텀 메서드를 선언합니다.
  2. MemberRepositoryCustom의 구현체인 MemberRepositoryImpl 클래스를 생성하고 커스텀 로직을 구현합니다.
  3. 별도의 설정 또는 빈 등록 과정을 통해 Spring이 MemberRepositoryMemberRepositoryImpl을 조합할 수 있도록 합니다. @EnableJpaRepositories 어노테이션과 같은 메커니즘을 이용하여 Spring Data JPA 설정에서 직접 이를 명시할 수 있습니다.

실무에서는 이러한 커스텀 인터페이스와 구현체를 통해 다양한 복잡한 쿼리 로직이나 비즈니스 로직을 처리합니다. MemberRepositoryCustom 인터페이스를 MemberRepository 인터페이스에 직접 상속시키는 것이 아니라, 둘을 별도로 관리하면서, 필요한 서비스 레이어에서 MemberRepositoryMemberRepositoryCustom을 필요에 따라 주입받아 사용하는 방식으로 리포지토리 기능을 확장합니다.

하지만 주어진 정보에는 이와 더 상세하게 관련된 구체적인 내용이나 예제가 없기 때문에, 일반적인 가이드라인에 따른 조언만을 드립니다. 추가적인 상황이나 요구 사항에 따라 구체적인 구현 방법은 달라질 수 있습니다.