-
02. Spring Data JPABackEnd/Spring Data JPA 2021. 10. 25. 21:32반응형
Spring Data JPA는 JPA 기반 Repositories를 쉽게 구현할 수 있는 모듈입니다. 사용자 정의 파인더 메소드를 포함하여 Repository 인터페이스를 작성하면 Spring이 자동으로 구현을 제공합니다.
특징
- Spring과 JPA 기반 Repositories 구축 지원
- Querydsl 지원 및 type-safe JPA 쿼리
- 도메인 클래스의 투명한 감사
- Pagination 지원, 동적 쿼리 실행, custom data 접근 코드 통합 기능
- 부트스트랩 시간에 @Query 어노테이션이 있는 쿼리의 유효성 검사
- XML 기반 엔티티 매핑 지원
- @EnableJpaRepositories를 도입하여 JavaConfig 기반 저장소 구성
JpaRepository 인터페이스
JpaRepository 인터페이스는 공통 CRUD를 제공하며, Repository 인터페이스 > CrudRepository 인터페이스 > PagingAndSortingRepository 인터페이스 > JpaRepository 인터페이스 순으로 구성되어 있습니다.
// JpaRepository를 사용하는 인터페이스 public interface MemberRepository extends JpaRepository<Member, Long> { }
JpaRepository는 대부분의 공통 메소드를 제공합니다. 주요 메서드는 다음과 같습니다.
(T : 엔티티, ID : 엔티티의 식별자 타입, S : 엔티티와 그 자식 타입)
- save(S) : 새로운 엔티티는 저장하고 이미 있는 엔티티는 병합한다.
- delete(T) : 엔티티 하나를 삭제한다. 내부에서 EntityManager.remove() 호출
- findById(ID) : 엔티티 하나를 조회한다. 내부에서 EntityManager.find() 호출
- getOne(ID) : 엔티티를 프록시로 조회한다. 내부에서 EntityManager.getReference() 호출
- findAll(…) : 모든 엔티티를 조회한다. 정렬( Sort )이나 페이징( Pageable ) 조건을 파라미터로 제공할 수 있다.
Sample Code
링크된 GitHub 코드의 MemberRepository.java, TeamRepository.java는 Spring Data JPA 기반 Repository이며, MemberJpaRepository.java, TeamJpaRepository.java는 순수 JPA 기반의 Repository입니다.
TEST
반응형'BackEnd > Spring Data JPA' 카테고리의 다른 글
04. 사용자 정의 리포지토리 (0) 2021.10.26 03. Query Method (0) 2021.10.25 01. 프로젝트 환경설정 (0) 2021.10.23