자라선

27. JPA 본문

Develop/Spring Boot

27. JPA

자라선 2020. 7. 27. 17:14

ORM

Object Relational Mapping

 

객체와 관계를 매핑하기위해 개념적인 불일치를 해결하는 것에 대한 솔루션을 제공하는 프레임워크

 

자바와 DB를 비교하자면 자바의 객체는 상속, 프로퍼티, 클래스 등 크기가 다양하지만 그에 반해 DB는 스키마와 필드로만 이루어져 있다. 이러한 서로 불일치한 다양한 크기를 매핑을 시킬지..

DB에서는 identity 식별자의 구분이 PK, FK등 명확하지만 자바의 객체는 어떠한 프로퍼티가 식별자인지 정의할 수가 없다. 이렇게 서로 다른 불일치성들을 매핑시키기 위한 솔루션이 담긴 프레임워크이다.


JPA

Java Persistence API

 

ORM을 근간으로 JAVA EE의 표준 스펙을 정의한 API

 

대부분의 JPA는 하이버네이트를 기본으로 개발되어있다. JPA의 표준을 정의 하이버네이트 창시자도 같이 정의했음

하이버네이트의 모든 기능을 JPA가 전부 사용할 수는 없다.

 

스프링부트는 spring-boot-starter-data-jpa 의 의존성 라이브러리를 제공하여 이를 사용해 JPA를 아주 쉽게 사용할 수 있도록 스프링의 데이터로 추상화 한것.

 

스프링부트는 Spring-boot-starter-data-jpa -> JPA -> Hibernate -> Datasource 와 같은 방식으로 생성되며 기존의 spring-boot-starter-jdbc의 모든 기능을 사용할 수 있다.

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

spring-boot-starter-data-jpa의 의존성 라이브러리에 엮인 라이브러리들의 리스트를 보면 spring-data-jpa, Hibernate, jdbc, orm등등 관련 라이브러리가 포함되어 있다.

'Develop > Spring Boot' 카테고리의 다른 글

29. JPA 초기화  (0) 2020.07.27
28. JPA Connection  (0) 2020.07.27
26. Mysql, PostgreSql DB Connect  (0) 2020.07.27
25. DBCP  (0) 2020.07.27
24. Support InMemory DB  (0) 2020.07.27
Comments