본문 바로가기
강의 정리/스프링 데이터 JPA

1. extends JpaRepository

by 이석준석이 2021. 1. 10.

1. 공통 인터페이스 설정

 

  • @EnableJpaRepositories(basePackage = "study.datajpa.repository") 이런식으로 레포지토리 인터페이스의 위치를 잡아줘야 한다.
    • 부트를 사용시, @SpringBootApplication 위치부터 하위패키지를 모두 인식하기 때문에 별다른 설정없이 레포지토리 인터페이스를 사용할 수 있다.

 

  • public interface ..... extends JpaRepository<Entity, PK>
    • 구현체가 없는데 어떻게 동작을하느냐?
      • extends JpaRepository 가 있으면 Spring Data JPA가 인터페이스에 대해서 프록시 구현체를 만든 뒤 DI 받기 때문에 사용할 수 있다.
    • @Repository 생략 가능
      • 컴포넌트 스캔을 Spring Data JPA 가 자동으로 처리해줌
    • @Repository 기능
      • 컴포넌트 스캔
      • JPA의 예외를 스프링에서 공통적으로 처리할 수 있는 예외로 변환해주는 역할도 지원

2. 공통 인터페이스 분석

 

  • save(S) : 새로운 엔티티를 저장하고, 이미 있는 엔티티는 병합한다.
  • delete(T) : 삭제
  • findById(ID) : 엔티티를 하나 조회한다.
  • getOne(ID) : 엔티티를 프록시로 조회한다. entityManager.getReference()
  • findAll(..) : 모든 엔티티를 조회한다. (Paging, Sorting 가능)

 

'강의 정리 > 스프링 데이터 JPA' 카테고리의 다른 글

3. 확장 기능  (0) 2021.01.14
2. 쿼리 메소드 기능  (0) 2021.01.10