Spring JPA

후니·2023년 7월 11일

스프링

목록 보기
4/5

JPA(Java Persistence API)란?

자바 ORM(Object Relational Mapping) 기술에 대한 API 표준 명세를 뜻하며
JPA는 ORM을 사용하기 위한 인터페이스의 모음이다.

  • ORM(Object Relational Mapping)이란?
    • 객체와 관계형 데이터 베이스를 매핑해 주는 기술이다.

Hibernate란?

JPA를 구현한 구현체이다.
JPA의 핵심들인 EntityManagerFactory, EntityManager, EntityTransaction 등을 상속받아 구현한다.
다른 구현체들로는 EclipseLink나 DataNucleus 등이 있다. 아니면 직접 JPA구현체를 만들어 사용할수도 있다. 내부적으로 JDBC API를 사용한다.

Spring Data JPA란?

JPA를 사용하기 편하도록 만들어 놓은 모듈이다.
JPA를 한 단계 더 추상화시킨 Repository 인터페이스를 제공한다. 사용자가 Repository 인터페이스에 정해진 규칙대로 메소드를 입력하면 Spring이 알아서 메소드에 맞는 쿼리를 날리는 구현체를 만들어 Bean에 등록해준다.

  • Spring Data JPA 쿼리 메소드

정리


이미지출처: https://suhwan.dev/images/jpa_hibernate_repository/overall_design.png

JPA는 자바 진영의 ORM 기술에 대한 API 표준 명세이다.
Hibernate는 JPA의 구현체이고, 내부적으로 JDBC를 이용한다.
Spring Data JPA는 JPA를 사용하기 쉽게 스프링에서 제공하는 모듈로 내부적으로 JPA 구현체를 이용한다.

0개의 댓글