⚠️
스프링 데이터 JPA 는 JPA 를 편리하게 사용하도록 도와주는 기술
JPA 를 먼저 학습한 후 스프링 데이터 JPA 학습
- 리포지토리에 구현 클래스 없이 인터페이스만으로 개발 가능
- 반복 개발해온 기본 CRUD 기능도 스프링 데이터 JPA가 제공
- 개발자는 핵심 비즈니스 로직을 개발하는데 집중할 수 있다.
- 관계형 데이터 베이스를 사용한다면 스프링 데이터 JPA는 필수
@Configuration
public class SpringConfig {
private final MemberRepository memberRepository;
@Autowired
public SpringConfig(MemberRepository memberRepository) {
this.memberRepository = memberRepository;
}
@Bean
public MemberService memberService() {
return new MemberService(memberRepository);
}
@Bean
public MemberRepository memberRepository() {
ℹ️
실무에서는 JPA 와 스프링 데이터 JPA 를 기본으로 사용
복잡한 동적 쿼리는 Querydsl 이라는 라이브러리를 사용
Querydsl을 사용하면 쿼리도 자바 코드로 안전하게 작성 가능
동적 쿼리도 편리하게 작성 가능
public interface SpringDataJpaMemberRepository extends JpaRepository<Member, Long>, MemberRepository {
// JPQL select m from Member m where m.name = ?
@Override
Optional<Member> findByEmail(String email);
}