Java

[JPA, Hibernate] 시작하기 -3, JPA 와 Hibernate

ride-dev 2023. 12. 23. 20:51

JPA는 Jakarta Persistence API 입니다.

maven에서 종속성을 살펴보면

<groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-jpa</artifactId>
  <version>3.2.1</version>
  <name>spring-boot-starter-data-jpa</name>
  <description>Starter for using Spring Data JPA with Hibernate</description>
  <url>https://spring.io/projects/spring-boot</url>
 ...

jpa와 hiberbate 모두 spring-boot-starter-data-jpa를 통해 들어오는 것을 확인할 수 있습니다.

import 된 것을 확인해보면

import jakarta.persistence.*

jakarta 를 확인할 수 있습니다.

JPA vs Hibernate

JPA
API, 기술 명세를 정의합니다. 인터페이스와 유사합니다.

@Entity를 추가하여 엔터티를 정의합니다.

@Column을 추가하여 속성을 매핑합니다.

EntityManager를 활용하는 방법을 정의합니다.

Hibernate
JPA에서 인기 있는 구현체입니다.

JPA는 객체를 테이블로 매핑하는 방식을 정의하고 Hibernate는 이를 구현합니다.

코드에서 Hibernate 어노테이션을 사용하여 Hibernate를 직접 사용할 수 있습니다.

기존에 작성한 코드는 Hibernate JAR를 클래스 경로에 추가하여 Hibernate를 JPA 구현체로 사용하고 있습니다.

 

JPA 인터페이스를 사용하면서 Hibernate를 JPA 구현체로 선택하는 이유는

Hibernate가 강력하면서도 유연하며 많은 기능을 제공하기 때문일 수 입니다.

Hibernate를 선택하면 JPA에서 정의한 표준적인 기능과 더불어 Hibernate의 특별한 기능 및 성능 향상 기능을 활용할 수 있습니다.

(JPA와 Hibernate의 기능을 모두 사용하기 위해 Hibernate를 직접 사용하지 않고 구현체로 사용합니다)

 

728x90
반응형