1. 공통 인터페이스 설정

JavaConfig 설정- 스프링 부트 사용시 생략 가능

@Configuration
@EnableJpaRepositories(basePackages = "jpabook.jpashop.repository")
public class AppConfig {}

스프링 데이터 JPA가 구현 클래스 대신 생성

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

JpaRepository 인터페이스: 공통 CRUD 제공
제네릭은 <엔티티 타입, 식별자 타입> 설정

주의
T findOne(ID) Optional<T> findById(ID) 변경


제네릭 타입
T : 엔티티ID : 엔티티의 식별자 타입
S : 엔티티와 그 자식 타입


주요 메서드
save(S) : 새로운 엔티티는 저장하고 이미 있는 엔티티는 병합한다.
delete(T) : 엔티티 하나를 삭제한다. 내부에서 EntityManager.remove() 호출
findById(ID) : 엔티티 하나를 조회한다. 내부에서 EntityManager.find() 호출
getOne(ID) : 엔티티를 프록시로 조회한다. 내부에서 EntityManager.getReference() 호출
findAll(…) : 모든 엔티티를 조회한다. 정렬( Sort )이나 페이징( Pageable ) 조건을 파라미터로 제공할 수 있다.

 

참고: JpaRepository 는 대부분의 공통 메서드를 제공한다.

 

 

 

출처 : 김영한 JPA 스프링 데이터 강의

'JPA > JPA-Spring Data' 카테고리의 다른 글

@Query, 리포지토리 메소드에 쿼리 정의하기  (0) 2022.07.20
JPA NamedQuery  (0) 2022.07.19
메소드 이름으로 쿼리 생성  (0) 2022.07.19
순수 JPA 기반 리포지토리 만들기  (0) 2022.07.19
예제 도메인 모델  (0) 2022.07.19
복사했습니다!