Spring Data JPA

박채은·2022년 12월 31일
0

Spring

목록 보기
18/35

Spring Data JPA

  • Spring Data 패밀리 기술 중 하나로, JPA 기반의 데이터 액세스 기술을 좀 더 쉽게 사용할 수 있게 해준다.
  • 이전에 사용했던 Spring Data JDBC과 사용 방식은 비슷하다.

Spring Data

  • Spring Data JDBC와 Spring Data JPA은 Spring Data라는 그룹에 포함되어 있다.

💡 JPA vs Hibernate ORM vs Spring Data JPA

- JPA: Java 애플리케이션에서 관계형 데이터베이스를 사용하기 위해 정해 놓은 표준 스펙(사양)이다.
ex) 이 기술은 무엇이고, 이걸 이렇게 구현해서 사용하면 된다구~라는 설명서
- Hibernate ORM: JPA를 구현한 구현체, 우리가 실제 사용하는 API
- Spring Data JPA: Hibernate ORM를 좀 더 쉽게 사용하게 해주는 모듈


JpaRepository

  • 이전까지는 CrudRepository를 사용했는데, Spring Data JPA에서는JpaRepository를 사용한다.
    • JpaRepository는 CrudRepository 기능 + JPA에 특화된 기능 (+ 페이징/Sorting)

쿼리를 통한 검색

1. JPQL 사용

  • JPQL: JPA에서 제공하는 객체 지향 쿼리

✔️ 과정

  1. JPA가 JPQL를 분석해서 SQL로 변환
  2. SQL를 DB에 날려, DB를 조회
  3. 조회한 결과를 엔티티 객체로 매핑한 후에 반환

✔️ JPQL 코드

@Query(value = "SELECT c FROM Coffee c WHERE c.coffeeId = :coffeeId")
  • 객체 지향 쿼리이기 때문에, 테이블이 아닌 엔티티 클래스를 기준으로 작성해야 한다.
    • COFFEE 테이블 (x) -> Coffee 객체
    • coffee_id 컬럼 (x) -> coffeeId 필드
  • * 대신에 별칭을 사용

2. 네이티브 SQL 사용

@Query(value = "SELECT * FROM COFFEE WHERE coffee_Id = :coffeeId", nativeQuery = true)

우리가 JPA API를 사용해서 commit하는 것은 간단하지만, 내부에서는 아주 복잡한 과정이 일어난다.

  1. JPA API(Hibernate ORM)이 작동
  2. JDBC API 작동 (JdbcConnection) -> 데이터베이스와 인터랙션

0개의 댓글