성장에 목마른 코린이

[Spring] JPA, ORM, Hibernate 본문

Java/Spring

[Spring] JPA, ORM, Hibernate

성장하는 코린이 2022. 10. 21. 17:09
728x90

JPA

Java Persistence Api를 뜻하며 ORM을 제공하는 Java 표준 Api 입니다.

 

ORM (Object-Relational Mapping)

Java 객체를 데이터베이스 테이블에 매핑하거나 그 반대로 매핑하는 것을 의미합니다.

 

JPA의 기능: Java 객체에서 데이터베이스의 관계형 테이블로 데이터를 유지, 읽기 및 관리하기 위한 인터페이스를 제공합니다.

 

JPA를 써야하는 이유: 객체 모델(Java)과 관계형 모델(Database) 불일치로 인해 코드가 방대해지고 복잡해지는 불편함을 줄이기 위해

 

관계형 객체는 표 형식으로 표시되는 반면 객체 모델은 객체 형식의 상호 연결된 그래프로 표시됩니다.

RDBMS에서 객체 모델을 저장하고 검색하는 동안 다음과 같은 이유 일부 불일치가 발생합니다.

1. 세분성: 객체 모델은 관계형 모델보다 세분화됩니다. 객체의 경우 하나의 테이블에 관해서 복수의 Entity를 만들 수 있습니다.

2. 상속 및 is, has 관계: 하위 유형(상속)은 모든 유형의 RDBMS에서 지원되지 않습니다.

3. 정체성: RDBMS의 경우 기본적인 Primary Key가 항상 존재해야 하고 이를 바탕으로 데이터를 비교하고 Join하게 됩니다.

4. 연관성: 객체 지향 언어에서 단방향 참조로 표시되는 반면 RDBMS는 외래 키 개념을 사용합니다.

Java에서 양방향 관계가 필요한 경우 연관을 두 번 정의해야합니다.

5. 데이터 탐색: 객체 네트워크의 객체간 데이터 탐색은 두 모델에서 다릅니다.

 

Hibernate

Java 환경을 위한 객체 관계형 매핑 솔루션입니다.

Hibernate는 ORM 도구입니다.

Hibernate는 느슨한 결합의 이점이 있는 ORM 도구로 훌륭한 선택이되도록 Java Persistence API의 참조 구현을 제공합니다.

즉, JPA는 기술명세서이고 Hibernate는 JPA 공급자 또는 구현, 설명서 입니다.

 

'Java > Spring' 카테고리의 다른 글

[JPA] Spring JPA 관련 주요 Annotation 및 설정  (0) 2022.10.31
Comments