본문 바로가기

웹 프로그래밍/JPA

JPA(Java Persisitence API)

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): 객체가 실제 사용될때 로딩(설정 가능)

'웹 프로그래밍 > JPA' 카테고리의 다른 글

프록시  (1) 2023.03.04
고급 매핑  (0) 2023.03.04
연관관계 매핑 기초  (0) 2023.03.03
엔티티 매핑  (0) 2023.03.02
영속성 관리  (0) 2023.02.28