ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 02. Spring Data JPA
    BackEnd/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

    댓글

Designed by Tistory.