ORM (Object Relation Mapping)
객체 관계 매핑. 데이터베이스와 객체 지향 프로그래밍 언어 간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법이다. 객체는 객체대로, DB는 DB대로 설계하면 ORM이 알아서 매핑해준다.
JPA: 기술 명세. API.
Hibernate: 자바 언어를 위한 객체 관계 매핑 프레임워크. jpa를 구현한 실체 구현체라고 보면 된다.
JPA (Java Persistence API)
자바 플랫폼 SE와 자바 플랫폼 EE를 사용하는 응용프로그램에서 관계형 데이터베이스의 관리를 표현하는 자바 API이다. 기존에 EJB에서 제공되던 엔터티 빈(Entity Bean)을 대체하는 기술이다.
구성 요소
JPA는 아래의 세 가지 영역으로 구성된다
- javax.persistance 패키지로 정의된 api 그 자체
- jpql (자바 퍼시스턴스 쿼리 언어)
- 객체/관계 메타데이터
엔티티
persistance entity는 관계형 데이터베이스의 테이블로 지속되는 경량 자바 클래스이다. 이러한 엔티티는 테이블에서 개개의 행에 해당한다. 엔티티는 일반적으로 다른 엔티티들과 관계가 있으며 이러한 관계는 객체/관계형 메타 데이터를 통해 표현된다. 객체/관계형 메타데이터는 어노테이션을 사용하여 엔티티 클래스 파일에 직접 명시하거나 응요프로그램과 함께 배포되는 별도의 XML 설명자 파일에서 지정할 수 있다.
JPQL
관계형 데이터베이스에 저장된 엔티티에 대한 쿼리들을 작성한다. 쿼리들은 구문에서 SQL 쿼리와 유사하지만, 데이터베이스 테이블에 직접적으로 처리하지 않고 엔티티 개체에 대하여 처리된다.