[Spring] Data JPA 사용자 정의 리포지토리 구현

박준형·2023년 11월 21일
0

Spring

목록 보기
9/17
post-thumbnail

📌사용자 정의 리포지토리

spring data JPA 리포지토리는 인테페이스만 정의하고 구현체는 spring이 자동 생성한다.
spring data JPA가 제공하는 인터페이스를 직접 구현한다면 구현해야 하는 기능이 너무 많아진다.

결론❗

필요한 기능만 인터페이스로 따로 만들어서 구현하고 이후에 data JPA 리포지토리에 상속해주면 된다.

사용자 정의 인터페이스

public interface MemberRepositoryCustom {
    List<Member> findMemberCustom();
}

구현 클래스

@RequiredArgsConstructor
public class MemberRepositoryImpl implements MemberRepositoryCustom{
    private final EntityManager em;

    @Override
    public List<Member> findMemberCustom() {
        return em.createQuery("select m from Member m")
                .getResultList();
    }
}

data JPA 리포지토리

public interface MemberRepository extends JpaRepository<Member, Long>, MemberRepositoryCustom

추가로 사용자 정의 인터페이스를 data JPA 리포지토리에 상속시켜주면 된다.

주의 사항❗

구현 클래스의 이름은 "data JPA 리포지토리 이름 + Impl"로 설정하여야 한다!
그래야 data JPA가 구현한 클래스를 찾아서 메서드 실행을 하게 된다.

profile
으쌰 으쌰

0개의 댓글

관련 채용 정보