본문 바로가기

사이드 프로젝트/회원 관리 프로그램

[Spring project] 스프링 데이터 JPA

스프링 데이터 JPA


지난 포스팅에서는 JPA를 사용했다. JDBC보다 개발 생산성이 많이 증가하고, 개발해야할 코드도 확연히 줄어들었다. 이번엔 스프링 데이터 JPA를 사용해보자. 

 

스프링 데이터 JPA는 JPA를 편리하게 사용하도록 도와주는 기술이다.

 

스프링 데이터 JPA 회원 리포지토리


SpringDataJpaMemberRepository

public interface SpringDataJpaMemberRepository  extends JpaRepository<Member, Long>, MemberRepository{

    @Override
    Optional<Member> findByName(String name);
}

 

=> JpaRepository를 상속하고 있으면 구현체를 자동으로 만들어준다. 스프링 빈도 스프링 데이터 JPA 가 구현체를 만들어서 등록해준다. 우리는 이것을 가져다 쓰기만 하면 된다. 

 

SpringConfig

@Configuration
public class SpringConfig {

    private final MemberRepository memberRepository;

    @Autowired
    public SpringConfig(MemberRepository memberRepository) {
        this.memberRepository = memberRepository;
    }

    @Bean
    public MemberService memberService() {
        return new MemberService(memberRepository);
    }

}

 

 

JpaRepository


JpaRepository를 들어가보자. findAll, Paging.. 의 기본 메서드를 제공하고 있다. 어떤 기능을 제공하는 지 궁금하다면 인터페이스를 직접 들어가서 확인해보자. 

 

많은 기능이 공통화 되어 있지만 제공하지 않는 기능도 있기 때문에 직접 구현해야 한다. 

 

* 참고

실무에서는 JPA와 스프링 데이터 JPA를 기본으로 사용하고, 복잡한 동적 쿼리는 Querydsl 이라는 라이브러리를 사용하면 된다. 

 

 

 

* 인프런 '스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술' 강의를 참고하여 작성했습니다.