영속성 컨텍스트

이연희·2022년 3월 17일
0

Spring

목록 보기
46/105

JPA(Java Persistence API)의 핵심

  • 객체와 관계형 데이터베이스 매핑(Object Relational Mapping:ORM)
  • 영속성 컨텍스트

영속성 컨텍스트: 엔티티를 영구 저장하는 환경
@Entity: JPA가 관리할 객체
@Id:데이터베이스 PK와 매핑
EntityManager.persist(entity);

🔹 엔티티 매니저 팩토리와 엔티티 매니저

  • 엔티티 매니저 팩토리는 하나만 생성해서 애플리케이션 전체에 공유
  • 엔티티 매니저는 쓰레드간에 공유하면 안된다. 사용하고 버리기
  • JPA의 모든 데이터 변경은 트랜잭션 안에서 실행

🔹 엔티티의 생명주기

  • 비영속(new/transient): 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태
  • 영속(managed): 영속성 컨텍스트에 관리되는 상태
  • 준영속(detached): 영속성 컨텍스트에 저장되었다가 분리된 상태
  • 삭제(removed): 삭제된 상태

🔹 영속성 컨텍스트의 이점

  • 1차 캐시
  • 동일성(identity) 보장
  • 트랙잭션을 지원하는 쓰기 지연(transactional write-behind)
  • 변경 감지(Dirty Checking)
  • 지연 로딩(Lazy Loading)
profile
공부기록

0개의 댓글