[JPA] 사용자 정의 인터페이스

olsohee·2023년 8월 25일
0

JPA

목록 보기
18/21
post-custom-banner

  • 스프링 데이터 JPA가 제공하는 기능으로 정의 가능한 쿼리, 메서드는 JpaRepository를 상속하는 (1)MemberRepository 인터페이스에 정의한다.

  • 동적 쿼리 같은 복잡한 쿼리는 (2)사용자 정의 리포지토리에 정의하거나, (3)별도의 클래스를 만들어 JPA와 별개로 사용한다.

    • 사용자 정의 리포지토리의 이름은 JpaRepository를 상속하는 인터페이스 명에 Impl을 붙인 이름이어야 한다. (ex, MemberRepositoryImpl)

    • 예를 들어, 위 그림에서 search() 메서드를 실행할 때 memberRepository.search()와 같이 paRepository를 상속하는 인터페이스를 통해 메서드를 호출한다. 즉 사용자 정의 리포지토리를 사용한다는 것은, 결국 JpaRepository를 상속하는 인터페이스(MemberRepository)가 커지고 복잡해지는 것이다.

    • 따라서 핵심 비즈니스 로직과 관련된 메서드는 JpaRepository를 상속하는 인터페이스 또는 사용자 정의 리포지토리에 정의하고, 화면이나 dto에 특화된 메서드는 별도의 클래스에 정의하여 분리하자!

profile
공부한 것들을 기록합니다.
post-custom-banner

0개의 댓글