JPA를 알아보자-(1) JPA란?

최대 1 분 소요

JPA 실행구조

애플리케이션과 JDBC 사이에서 동작한다. JDBC와 Hibernate를 활용하여 DB와 소통한다. DB언어를 직접 사용하지 않아도 알아서 Table을 생성해주고 간단한 CRUD는 물론 Foreign Key 설정까지 해준다.

JPA 장점

● 유지보수 용이 DB언어를 직접 사용하지 않고 자동으로 생성하기 때문에 column 변경시 자바상에서 멤버 변수만 추가하면 된다.

● Hibernate로 45가지 DB 언어 연동 가능

Persistence Context & Entity

JPA는 Persistence Context를 활용해 DB연결을 최소한으로 할 수 있다.

Persistence Context는 github에서 commit하기 전 단계인 스테이징(staging) 상태와 비슷한 형태로 Database에서는 실제로 적용되지 않은 상태이다.

EntityTransaction의 commit 메소드를 사용해야 실제 DB에 적용이 된다.

● 단계

  1. Entity를 1차 캐시에 등록

  2. 1차 캐시에 등록된 Entity에 해당하는 insert문을 생성하여 SQL 저장소에 등록

  3. commit 메소드로 transaction 종료

  4. SQL 저장소에 저장되어 있던 모든 SQL 문장이 한번에 Database로 전송

→ SQL 구문을 한번에 처리할 수 있기 때문에 성능 최적화

● Dirty checking
캐시에 존재하는 내용과 비교하여 변경 되어있는지 알아서 확인한다.

● Snapshot
entity가 1차 캐시에 저장될 시 그것을 복사해서 저장해두는 곳이다. 
dirty checking을 통해 변경을 감지하고 알아서 update를 한다.
JPA에 자체 update() 구문이 없는 이유이다.

카테고리:

업데이트:

댓글남기기