JPA

태그: , ,

카테고리:

출처 : 인프런 김영한님의 강의 “자바 ORM 표준 JPA 프로그래밍 - 기본편” 중 일부


🚫 아래 내용은 주관적인 생각이므로 사실과 다를 수 있습니다.


개요

JPA(Java Persistence API)에 대한 내용


내용

정의

JPA(Java Persistence API)는
자바 진영의 ORM(Object-Releational Mapping) 기술 표준이다.

JPA는 DB와 소통하는 JDBC API와 JAVA 어플리케이션 사이에서 동작한다.


하는 일

  • 저장의 경우
    • Entity 분석
    • INSERT SQL 생성
    • JDBC API 사용
    • 패러다임 불일치 해결
  • 조회의 경우
    • SELECT SQL 생성
    • JDBC API 사용
    • ResultSet 매핑
    • 패러다임 불일치 해결

사용시 장점

  • SQL 중심적인 개발에서 객체 중심으로 개발 할 수 있다.
  • 생산성
  • 유지보수
  • 패러다임의 불일치 해결
    • 상속
    • 연관관계
    • 객체 그래프 탐색
    • 비교하기
  • 성능
    • 1차 캐시와 동일성 보장
      • 이미 조회된 내용은 캐싱해서 재활용
        • 같은 트랜잭션 안에서는 같은 엔티티를 반환
        • DB Isolation Level이 Read Commit이어도,
          애플리케이션에서 Repeatable Read 보장
    • 트랜잭션을 지원하는 쓰기 지연(transactional wire-behind)
      • 트랜잭션을 커밋할 때까지 INSERT SQL을 모아뒀다가
        JDBC BATCH SQL 기능을 사용해서 한번에 SQL 전송
      • UPDATE, DELETE로 인한 Row 락 시간 최소화
      • 비즈니스 로직을 수행하는 동안에는 DB Row에 락이 걸리지 않다가,
        트랜잭션 커밋시 UDATE, DELETE SQL 실행하고 바로 커밋
    • 지연 로딩(Lazy Loading)과 즉시 로딩
      • 지연 로딩: 객체가 실제로 사용될 때 로딩
      • 즉시 로딩: JOIN SQL로 한번에 연관된 객체까지 미리 조회
  • 데이터 접근 추상화와 벤더 독립성
  • 표준

댓글남기기