본문 바로가기

서버

Spring boot3 - JPA 와 hibernate 관계

728x90

sprint-starter-jpa 의존성을 보면

내부에 Hibernate가 있다.

 

또 hibernate는 JPA를 의존하고 있다. 

 

 

JPA는 

Jarkarta.persistence-api의 약자인 만큼

API이다. 

 

-> @Entity를 통해 테이블을 생성해주는 api

-> @Repository, @Service 등을 통해 Bean을 생성해주는 api

등등... 

 

그럼 hibernate는?

 


hibernate는 

JPA, api가 구현한 것들 중 하나다. 

 

hibernate는 ORM을 담당한다.

ORM은 DB의 ROW에 있는 column 값들을
자동으로 자바 POJO로 매핑해준다.

HikariCp를 통해 Connection을 받아 DB데이터를 리턴해주는 녀석이다. 

 

이런 녀석을 JPA가 인수받아 

개발자가 사용을 편하게 할 수 있도록 API를 제공해주는 것이다. 

 


hibernate가 제공하는

@Entity를 사용할 수도 있다.

 

그럼에도 JPA를 사용하는 이유는

JPA가 만든 API 구축 환경 속에서 

더 많은 기능을 제공받기 위함이다.