1. ORM
Object-relational mapping (객체 관계 매핑)
객체는 객체대로 설계하고, 관계형 데이터베이스는 관계형 데이터베이스대로 설계한다.
ORM 프레임워크가 중간에서 매핑해준다.
MyBatis, iBatis는 ORM이 아니다. SQL Mapper이다.
ORM은 객체를 매핑하는 것이고, SQL Mapper는 쿼리를 매핑하는 것이다.
2. JPA
JPA는 자바 어플리케이션에서 RDB를 사용하는 방식을 정의한 인터페이스
JPA는 특정 기능을 하는 라이브러리가 아님
JPA를 정의한 javax.persistence 패키지는 대부분의 Anonotation으로 이루어져 있다.
JPA의 핵심인 EntityManager는 javax.persistence.EntityManager라는 파일의 interface이다.
package javax.persistence;
import ...
public interface EntityManager {
void persist(Object var1);
<T> T merge(T var1);
void remove(Object var1);
<T> T find(Class<T> var1, Object var2);
<T> T find(Class<T> var1, Object var2, Map<String, Object> var3);
<T> T find(Class<T> var1, Object var2, LockModeType var3);
JPA를 사용하기 위해서는 JPA를 구현한 Hibernate, EclipseLink, DataNucleus 같은 ORM 프레임워크를 사용해야 한다