• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

QueryDSL의 Custom Repository 작성 관련 질문이 있습니다.

20.08.05 17:33 작성 조회수 341

1

강의 내용 중에 Custom Repository 작성할 때 구현 클래스는 기존에 JpaRepository를 상속하고 있는 인터페이스명 + Impl을 붙여야 한다고 하셨는데요...

ex) ARepository, ARepositoryCustom, ARepositoryImpl

근데 제가 테스트 했을 경우 아래와 같이 작성해도 동작에 문제가 없는것 처럼 확인이 되었습니다.

ex) ARepository, ARepositoryCustom, ARepositoryCustomImpl

(일반적으로 구현클래스는 구현 대상을 정의한 인터페이스명에 +Impl을 붙이기 때문에 이와 같이 접근함)

그래서 spring 문서를 확인해 봤는데 해당 문서에도 JpaRepository를 상속받고 있는 인터페이스명에 Impl을 추가해서 QueryDSL 구현 클래스 명을 정하라는 내용을 확인하지 못했습니다.

interface UserRepository extends CrudRepository<User, Long>, CustomizedUserRepository {
class CustomizedUserRepositoryImpl implements CustomizedUserRepository {

https://docs.spring.io/spring-data/jpa/docs/2.1.3.RELEASE/reference/html/#repositories.custom-implementations

제가 잘못이해하고 있는 부분일지 문의 드립니다.

감사합니다.

답변 2

·

답변을 작성해보세요.

1

유근일님의 프로필

유근일

질문자

2020.08.06

빠르고 명확한 답변 감사합니다^^

0

안녕하세요. 근일님^^

질문하신 내용이 맞습니다. 스프링 데이터 2.x 부터 새로 생긴 기능인데요, 이제부터는 말씀하신 내용처럼 사용하는 것을 더 권장합니다.

스프링 데이터 JPA 강의에서 PDF 자료를 받아보시면 확장 기능 -> 사용자 정의 리포지토리 구현에

사용자 정의 리포지토리 구현 최신 방식이라는 부분에 더 자세히 설명되어 있으니 참고해보시면 도움이 되실꺼에요^^

감사합니다.