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
반응형
'Java' 카테고리의 다른 글
[Spring MVC] 아키텍처 모델 종류; Dispatcher Servlet, Model 1, Model 2, Front Controller (1) | 2023.12.26 |
---|---|
[SpringBoot] 로깅 (1) | 2023.12.26 |
[JPA, Hibernate] 시작하기 -2, JPA 및 Spring Data JPA 사용하기 (0) | 2023.12.23 |
[JPA, Hibernate] 시작하기 -1, 초기 설정 및 JDBC 사용하기 (0) | 2023.12.22 |
[SpringBoot] Spring Boot vs. Spring vs. Spring MVC (0) | 2023.12.22 |