Java Persistence API
자바 지연의 ORM 기술 표준
ORM이란?
Object-Relational mapping(객체 관계 매핑)?
객체와 관계형 데이터베이스를 매핑해주는 것
- 객체는 객체대로 설계
- 관계형 데이터베이스는 관계형 데이터베이스대로 설계
- ORM 프레임워크가 중간에서 매핑
JPA의 동작
- JPA는 애플리케이션과 JDBC 사이에서 동작
- Member 객체를 저장한다면, 아래의 과정을 거쳐 DB로 INSERT한다.
MemberDao > JPA [Entity 분석, INSERT SQL 생성, JDBC API 사용, 패러다임 불일지 해결] > JDBC API > DB
- id로 Member 객체를 조회한다면, 아래의 과정을 거쳐 DB에서 SELECT한다.
MemberDao에 id 전달 > JPA [SELECT SQL 생성, JDBC API 사용, ResultSet 매핑, 패러다임 불일지 해결] > JDBC API > DB > 결과 반환
JPA는 표준 명세
- JPA는 인터페이스의 모음
- JPA2.1 표준 명세를 구현한 3가지 구현체: Hibernate, EclipseLink, DataNucleus
- JPA 표준 인터페이스의 Hibernate 구현체를 주로 사용한다.
JPA 사용 이유
- SQL 중심적인 개발에서 객체 중심으로 개발
자바 컬렉션에 저장, 조회 하듯이 객체를 DB에 저장 및 관리할 수 있다.
- 생산성, 유지보수
- 패러다임의 불일치 해결
- 성능 최적화
트랜잭션을 커밋할 때까지 INSERT SQL을 모아뒀다가 한번에 전송한다.
같은 트랜잭션 안에서는 같은 엔티티를 반환한다. (캐시...?)