스프링 프레임워크와 JPA로 개발한 웹 애플리케이션에 스프링 데이터 JPA을 적용하기
<!--spring-data-jpa 라이브러리 추가--><dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-jpa</artifactId> <version>2.7.2</version></dependency>
<!--appConfig.xml <jpa:repositories> 추가--><jpa:repositories base-package="org.tmkim.jpashop.repository" />
기존 리포지토리들이 스프링 데이터 JPA를 사용하도록 리팩토링
// 회원 리포지토리 리팩토링 후public interface MemberRepository extends JpaRepository<Member, Long>{ List<Member> findByName(String name);}
JpaRepository를 상속<Member, Long>로 지정해 리포지토리가 관리하는 엔티티 타입과 엔티티의 식별자 타입을 정의save(), findOne(), findAll() 메소드를 제거(JpaRepository가 제공)findByName()은 스프링 데이터 JPA가 메소드 이름을 분석 후 적절한 쿼리를 실행//상품 리포지토리 리팩토링 후public interface ItemRepository extends JpaRepository<Item, Long>{ }
상품 리포지토리가 제공하는 모든 기능은 스프링 데이터 JPA가 제공하는 공통 인터페이스만으로 충분하다.