JPA/JPA

사용자 정의 리포지토리 구현

lovineff 2020. 6. 9. 10:40

화면 조회시 사용되는 복잡한 쿼리들은 기존 리포지토리를 사용하지 말고, 새로운 리포지토리를 생성하여 사용 권장

// 기능 인터페이스 생성
public interface MemberRepositoryCustom {
    List<Member> findMemberCustom();
}

// 인터페이스 구현
@RequiredArgsConstructor
public class MemberRepositoryImpl implements MemberRepositoryCustom { // 이름을 맞춰야함 class명 + impl
    private final EntityManager em; // 주입 권장방식
    @Override
    public List<Member> findMemberCustom() {
        return em.createQuery("select m from Member m", Member.class).getResultList();
    }
}

// 인터페이스 상속
public interface MemberRepository extends JpaRepository<Member, Long>, MemberRepositoryCustom {
}