(4) 사용자 정의 리포지토리 구현
Last update: 9 months ago by nowwaterReading time: 2 min
스프링 데이터 JPA 로 리포지토리 개발 시 인터페이스만 정의하고 구현체는 만들지 않는다.
하지만 다양한 이유로 메소드를 직접 구현해야 할 때도 있다.
=> 리포지토리 직접 구현 시 공통인터페이스가 제공하는 기능까지 모두 구현해야함.
이 경우 스프링 데이터 JPA는 필요한 메소드만 구현할 수 있는 방법을 제공한다.
1. 사용자 정의 인터페이스를 작성
직접 구현할 메소드를 위한 사용자 정의 인터페이스를 작성한다.
public interface MemberRepositoryCustom {public List<Member> findMemberCustom();}
2. 사용자 정의 인터페이스를 구현한 클래스를 작성해야 한다.
이름 짓는 규칙
리포지토리 인터페이스 이름 + Impl
-> 스프링 데이터 JPA가 사용자 정의 구현 클래스로 인식
public class MemberRepositoryImpl implements MemberRepositoryCustom {@Overridepublic List<Member> findMemberCustom(){... // 사용자 정의 구현}}
3. 리포지토리 인터페이스에서 사용자 정의 인터페이스를 상속
public interface MemberRepository extends JpaRepository<Member, Long>, MemberRepositoryCustom {}