몰입하며 나아가는 개발이란

Framework/JPA

Spring Data JPA

류하을 2022. 5. 2. 10:00

Spring Data JPA

스프링 데이터 JPA

JavaConfig 설정

@Configuration
@EnableJpaRepositories(basePackages = "exmaple.project.repository")

Spring Boot 사용시 생략가능. (@SpringBootApplication 해당패키지와 하위 패키지에서 자동으로 인식함.)

스프링 데이터 JPA 기반 Repository

import org.springframework.data.jpa.repository.JpaRepository;

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

JpaRepository 인터페이스는 제네릭은 <엔티티 타입, 식별자타입>으로 설정 할 수 있다.

  • 공통 CRUD를 제공한다.
  • 엔티티가 복수키 구성일때 @IdClass를 사용한다면 식별자 타입에 @IdClass를 바로 넣어서 사용 가능하다.

@Repository annotation 생략 가능

  • 컴포넌트 스캔을 스프링 데이터 JPA가 자동으로처리함
  • JPA 예외를 스프링 예외로 변환하는 과정도 자동으로 처리함

주요메서드

  • save(s) : 새로운 엔티티는 persist하고 이미 있는 엔티티는 merge한다.
  • delete(t) : 엔티티 하나를 삭제한다. EntityManager.remove() 호출
  • findById(ID) : 엔티티 하나를 조회한다. EntityManager.find() 호출
  • getOne(ID) : 엔티티를 프록시로 조회한다. EntityManager.getReference()호출
  • findAll() : 모든 엔티티를 조회한다. 정렬(Sort)과 페이징(Pageable) 조건을 파라미터로 제공한다.

'Framework > JPA' 카테고리의 다른 글

OSIV란?  (0) 2022.05.03