728x90
https://spring.io/projects/spring-data
Spring Data
Spring Data is an umbrella project consisting of independent projects with, in principle, different release cadences. To manage the portfolio, a BOM (Bill of Materials - see this example) is published with a curated set of dependencies on the individual pr
spring.io
- 스프링 데이터 JPA는 JPA를 사용할 때 지루하게 반복하는 코드를 자동화해준다.
- 이미 라이브러리는 포함되어 있다. 기존의 MemberRepository 를 스프링 데이터 JPA로 변경해보자.
SpringDataJPA
@Repository
@RequiredArgsConstructor
public class MemberRepository {
private final EntityManager em;
public void save(Member member){
em.persist(member);
}
public Member findOne(Long id){
return em.find(Member.class,id);
}
public List<Member> findAll(){
return em.createQuery("select m from Member m",Member.class).getResultList();
}
public List<Member> findByName(String name){
return em.createQuery("select m from Member m where m.name = :name",Member.class)
.setParameter("name", name)
.getResultList();
}
}

- 스프링 데이터 JPA는 JpaRepository라는 인터페이스를 제공하는데, 여기에 기본적인 CRUD 기능이 모두 제공된다. (일반적으로 상상할 수 있는 모든 기능이 다 포함되어 있다.)
- findByName처럼 일반화하기 어려운 기능도 메서드 이름으로 정확한 JPQL 쿼리를 실행한다.
- select m from Member m where m.name = :name
- 개발자는 인터페이스만 만들면 된다. 구현체는 스프링 데이터 JPA가 애플리케이션 실행 시점에 주입해준다.
- 스프링 데이터 JPA는 스프링과 JPA를 활용해서 애플리케이션을 만들때 정말 편리한 기능을 많이 제공한다. 단순히 편리함을 넘어서 때로는 마법을 부리는 것 같을 정도로 놀라운 개발 생산성의 세계로 우리를 이끌어 준다. 하지만 스프링 데이터 JPA는 JPA를 사용해서 이런 기능을 제공할 뿐이다. 결국 JPA 자체를 잘 이해하는 것이 가장 중요하다.
728x90
'실전! 스프링 부트와 JPA 활용2(API 개발과 성능 최적화)' 카테고리의 다른 글
| Ch05. API 개발 고급(실무 필수 최적화) - OSIV와 성능 최적화 (0) | 2022.04.26 |
|---|---|
| Ch06. SpringDataJPA,QueryDSL 맛보기 - QueryDSL 소개 (0) | 2021.12.23 |
| Ch04. API 개발 고급(컬렉션 조회 최적화) - API 개발 고급 정리 (0) | 2021.12.21 |
| Ch04. API 개발 고급(컬렉션 조회 최적화) - 주문 조회 V6(JPA에서 DTO로 직접 조회, 플랫 데이터 최적화) (0) | 2021.12.21 |
| Ch04. API 개발 고급(컬렉션 조회 최적화) - 주문 조회 V5(JPA에서 DTO 직접 조회 (컬렉션 조회 최적화)) (0) | 2021.12.21 |