[JPA] jpa 기초 배우기(1)

gamja·2022년 10월 12일
0

최범균 님의 <jpa 기초> 강의를 참고 하였습니다.

EntityManager

entityManager가 jpa에 있어서 핵심과 같은 역할을 한다.
영속성 처리, db연동, transaction까지 다 entityManager를 통해서 관리가 된다.

db 저장과 쿼리 실행 시점

위처럼 persist 메소드를 호출한 다음 commit 이전에 쿼리가 실행되는 것을 볼 수 있다.

영속 컨텍스트(persistence context)

EntityManager 단위로 영속 컨텍스를 관리한다.

db에서 읽어온 객체, entityMnager에서 읽어온 매핑된 객체들을 보관하고 있다가 commit시점에 context에 있는 객체와 응용 프로그램에 저장되어 있는 객체 사이에 변경 내역이 존재한다면 db에 변경 사항을 반영해준다. (변경 쿼리 실행)

이러한 영속 컨텍스트 덕분에 우리가 직접 코드를 작성하지 않아도 알아서 DB에 변경 사항이 저장되는 것이다.


정리

  • 기본 구조
    • EntityManagerFactory 초기화
    • DB 작업이 필요할 때마다
      • EntityManager 생성
      • EntityManager로 DB 조작
      • EntityTransaction으로 트랜잭션 관리
    • 하지만 스프링과 연동할 때는
      • 대부분 스프링이 대신 처리하므로 매핑 설정 중심으로 작업
  • 영속 컨텍스트
    • 엔티티를 메모리에 보관
    • 변경을 추적해서 트랜잭션 커밋 시점에 DB에 반영

잘못된 부분이 있다면 언제든지 지적해주세요!

profile
눈도 1mm씩 쌓인다.

0개의 댓글