JPA란 ?
- Java Persistence API
- 자바 진영의 "ORM" 표준 기술이다.
- JPA가 실무에서 어려운 이유
- 예제들은 보통 테이블이 한 두 개로 단순함
- 실무는 수십 개 이상의 복잡한 객체와 테이블 사용
ORM이란 ?
- Object - relational mapping (객체 관계 매핑)
- 객체는 객체대로 설계
- 관계형 데이터베이스는 관계형 데이터베이스대로 설계
- ORM 프레임 워크가 중간에서 매핑
목표 - 객체와 테이블 설계 매핑
- 객체와 테이블을 제대로 설계하고 매핑하는 방법
- 기본 키와 외래 키 매핑 하는 법
- 1:N, N:1, 1:1, N:M 매핑 하는법
- 실무 노하우 + 성능까지 고려
SQL 중심적인 개발의 문제점
- 객체 CRUD (등록, 수정, 삭제, 등) 필드를 추가할 경우가 있으면 쿼리문을 다 고쳐야한다.
- 객체 -> SQL변환 -> SQL -> RDB 이 순서를 거쳐야한다.
- 객체와 관계형 데이터베이스의 차이
- 객체 답게 모델링 할수록 매핑 작업만 늘어난다.
JPA 동작 방식
- JPA는 애플리케이션과 JDBC 사이에서 동작
- Entity 분석
- INSERT SQL 생성
- JDBC API 사용
- 패러다임 불일치 해결
- 동일한 트랜잭션에서 조회한 (==비교) 엔티티는 같음을 보장한다