강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

김대희님의 프로필 이미지
김대희

작성한 질문수

스프링 부트 개념과 활용

JPA, Hibernate, Spring Data JPA에 대한 상속,구현관계 질문

해결된 질문

작성

·

240

0

"스프링데이터 5부: 스프링 데이터 JPA" 강의에서 

Spring Data JPA -> JPA -> Hibernate -> DataSource 로 상속 및 구현 관계를 알려주셨는데

첫번째 질문

DataSource는 잘 모르겠습니다만 JPA는 ORM을 위한 표준 Java interface이고 interface에 있는 method를 구현한 것이 Hibernate이기 때문에 순서가 다음처럼 되어야 하는게 아닌지요?

Spring Data JPA -> Hibernate -> JPA

두번째 질문

Hibernate class를 확인해봤습니다만 DataSource interface를 구현하고 있지는 않았는데 그럼 DataSource는 어디서 구현하고 있는 것일까요?

답변 1

0

백기선님의 프로필 이미지
백기선
지식공유자

정확히는 그 모두가 상속 및 구현 관계는 아니구요. Spring Data JPA 는 JPA를 사용하고, 또 그 JPA 구현체로 하이버네이트를 사용하고 하이버네이트는 JDBC (Datasource)를 사용한다는 뜻이었습니다. 그 모든걸 단순한 화살표로 표현한 제 불찰이네요.

DataSource는 사실 DBCP, DataSource Connection Pool을 제공하는 라이브러리에서 구현하고 있습니다. HikariCP나 TomcatCP 같은 라이브러리가 구현하고 있고, 다시 말씀드리시지만 하이버네이트나 JPA는 Datasource를 사용하는 입장이지 구현이나 상속 관계가 아닙니다.

김대희님의 프로필 이미지
김대희

작성한 질문수

질문하기