• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

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

20.07.14 08:42 작성 조회수 151

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를 사용하는 입장이지 구현이나 상속 관계가 아닙니다.