JPA
-자바 진영의 ORM 기술표준
ORM
-Object relational mapping(객체 관계 매핑)
-객체는 객체대로 관계형 DB는 관계형 DB로 설계
-ORM 프레임 워크가 중간에서 매핑
-JPA는 애플리케이션과 JDBC사이에서 동작
-JPA는 표준 명세(인터페이스의 모음): 일반적으로 구현체로 하이버네이트를 씀
왜 JPA?
-SQL 중심 개발 -> 객체 중심 개발
-생산성
-유지 보수
-패러다임 불일치 해결(객체와 테이블)
-성능
-데이터 접근 추상화와 벤더 독립성
JPA와 패러다임 불일치 해결
-1. 상속(JPA가 알아서 join 해줌)
-2. 연관관계(객체 안의 객체)
-3. 객체 그래프 탐색(엔티티 참조 가능, 신뢰 가능) ※ 엔티티(Entity): JPA가 관리하는 객체
-4. 비교하기(동일한 트랜잭션에서 조회한 엔티티는 같음을 보장)
JPA의 성능 최적화 기능
-1. 1차 캐시와 동일성(identiy) 보장: 반복시 캐시 사용(성능 향상)
-2. 트랙잭션을 지원하는 쓰기 지연(transactional write-behind): 트랜잭션 커밋전까지 INSERT SQL를 모으고 나서 전송(버퍼)
-3. 지연 로딩(Lazy Loading): 객체가 실제 사용될때 로딩(설정 가능)