반응형
-스프링 데이터 JPA 리파지토리는 인터페이스만 정의하고 구현체는 스프링이 자동완성
인터페이스를 직접 구현하면 구현해야 하는 기능이 너무 많음
-인터페이스의 메서드를 직접 구현해서 사용하고 싶을 경우에 사용자 정의 repository를 사용한다
인터페이스를 만들고 그 인터페이스를 구현할 클래스를 따로 만들어 준 후
JpaRepository를 상속받는 인터페이스에서 JpaRepository와 함께 위의 직접구현한 인터페이스를 상속받게하면
JpaRepository의 메소드가아닌 직접구현한 인터페이스의 메소드가 실행됨
JpaRepository인터페이스 안에 메서드가 아니고 ,
직접 customizing이 필요한 복잡한 쿼리를 사용하거나
Mybatis ,jdbc 템플릿, queryDSL 같은 것을 사용하고 싶을때에
사용자정의 repository를 사용한다.
규칙이 하나있다
사용자정의 repository 인터페이스를 구현하는 클래스의 이름은
JpaRepository를 상속받는 인터페이스의 이름 + Impl로 지어야한다.
ex )
JpaRepository를 상속받는 인터페이스명 -> memberRepository
사용자 정의 인터페이스명->memberRepositoryCustom( 아무거나상관없음)
사용자 정의 인터페이스를 구현하는 클래스명->memberRepositoryImpl
반응형