ORM [Object Relational Mapping]
- 객체-관계 매핑
- 객체(클래스)와 데이터베이스의 데이터(테이블)를 자동으로 매핑해주는 것.
- ORM을 통해 객체간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결한다.
- = Persistent API
ex) JPA, Hibernate
JPA [Java Persistence API]
- Java ORM 기술에 대한 API 표준 명세
- Hibernate 개발자가 interface 형태로 만든게 JPA라고 한다.
- 다양한 라이브러리
ex) Spring Data JPA, Spring Data Redis, Spring data MongoDB
- 다양한 구현체
ex) Hibernate, DataNucleus, EclipseLink
*JPA와 Mybatis와의 차이점
- JPA는 ORM 기술인 반면, Mybatis는 SQL Builder 또는 SQL Mapper의 한 종류
Spring Data JPA
- Spring Framework에서 JPA를 편리하게 사용할 수 있도록 지원하는 프로젝트
- CRUD 처리를 위한 공통 인터페이스 제공
- repository 개발 시 인터페이스만 작성하면 실행 시점에 스프링 데이터 JPA가 구현 객체를 동적으로 생성해서 주입
JpaRepository interface
- Spring Data JPA 제공 인터페이스. 상속하여 사용한다.
- 제공되는 메서드를 사용하여 엔티티를 편집하거나 메소드 이름만으로 쿼리를 생성하는 것이 가능하다.
참고
ORM
https://gmlwjd9405.github.io/2019/02/01/orm.html
JPA
https://incheol-jung.gitbook.io/docs/q-and-a/spring/jpa-vs-mybatis
Spring Data JPA
https://data-make.tistory.com/621