Posts [JPA] Spring Data JPA 개요
Post
Cancel

[JPA] Spring Data JPA 개요

Spring Data JPA

  • JPA를 사용해서 관계형 DB와 쉽게 연동하기 위한 Spring에서 제공하는 Spring ORM Module중 하나
  • Spring에서 CRUD 구현체를 제공
    • 이를 통해 boiler-pate DAO코드를 최소화
    • entity type과 primary key의 정보만 넣어주면 자동으로 dao클래스를 생성해줌
    • image
    • CrudRepository 클래스를 상속받아 추가적인 메소드만 구현해주면 된다.

Spring Data JPA에서 제공하는 3가지 인터페이스

image

1) CrudRepository

  • 주로 기본적인 CRUD연산에 대한 기능 제공

2) PagingAndSortingRepository

  • CrudRepository를 상속 받아 추가적인 페이징 처리 기능과 정렬 기능을 제공

3) JpaRepository

  • pagingAndSortingRepository를 상속받아 추가적인 persistence context를 flush기능과 배치 속 레코드를 삭제하는 추가적인 기능을 제공

Hibernate와 Spring Data JPA의 비교

Hibernate를 사용하여 구현한 DAO클래스

image

Spring Data JPA를 사용하여 구현한 DAO클래스

image

Spring Data JPA의 추가적인 기능 구현

image

  • 위의 그림과 같이 인터페이스에 메소드만 정의해주면 추가적인 기능을 구현할 수 있다.
  • ‘findBy + 필드이름’이름으로 메소드만 정의해주면 자동으로 구현 가능하다.
  • 예를 들어, findByProductname(String productName)메소드만 구현해주면 Spring Data JPA는 자동으로 “where productName = ?” 다음과 같은 where절을 쿼리에 추가해준다.
This post is licensed under CC BY 4.0 by the author.