Skip to content

[3장] 영속성 관리 #3

@iyoungman

Description

@iyoungman

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

엔티티 생명주기

영속성 컨텍스트 특징

  • 식별자

    • 엔티티 식별자 값으로 구분한다.
    • 따라서 영속 상태는 식별자 값이 반드시 있어야 한다.
  • 영속성 컨텍스트 -> DB 저장 시점

    • 트랜잭션 커밋 시점
    • 이를 flush(DB에 반영) 라고 한다.
  • 영속 엔티티가 동일성 보장하는 이유

    • find하면 1차 캐시 조회 -> DB 조회를 한다.
    • 만약 1차 캐시에 없으면 DB 조회한 결과를 1차 캐시에 저장한다.
    • 1차 캐시는 Map 자료구조이다.
      • Map의 Key는 객체 식별자, Value는 객체 인스턴스
    • 아래의 경우 1차 캐시 Map에서 조회하므로 true
    Member m1 = em.find(Member.class, "member1");
    Member m2 = em.find(Member.class, "member1");
    m1 == m2//true, 동일성
  • 변경 감지 과정

플러시

  • 영속성 컨텍스트 변경 내용을 DB에 반영

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions