다음은 두개의 인터페이스와 하나의 클래스의 정의예요
쿼리dsl강의에서 이런식으로 정의를 하더라구요 그런데 이건 한개의 엔티티가 두개의 리파지토리를 만드는꼴아닌가요?
그럼 헷갈릴텐데.,. 한개로 못합치나요? 왜 하나의 엔티티에서 두개의 리파지토리를 만드는건지 모르겠어요
memberRepositoryImpl: search라는 기능하나 제공해줌
MemberRepository: jpaRepository가 제공하는 기본기능 + findByUsername
-> Member에 대한 Repository 가 두개
public interface MemberRepository extends JpaRepository<Member, Long> {
List<Member> findByUsername(String userName);
}
public interface MemberRepositoryCustom {
List<MemberTeamDto> search(MemberSearchCondition condition);
}
public class MemberRepositoryImpl implements MemberRepositoryCustom{
private final JPAQueryFactory queryFactory;
public MemberRepositoryImpl(EntityManager em){
this.queryFactory = new JPAQueryFactory(em);
}
@Override
public List<MemberTeamDto> search(MemberSearchCondition condition) {
return null;
}
}
-> 커스텀 리파지토리 상속받는걸 놓쳤었음