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
반응형