2023.02.10 TIL

김근호·2023년 2월 10일
1

Spring

목록 보기
2/9

Thread

  • 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위

Entity

  • DB에서 영속적으로 저장된 데이터를 자바 객체로 매핑하여 '인스턴스의 형태'로 존재하는 데이터

EntityManager

  • 특정 작업을 위해 데이터베이스에 액세스하는 역할을 담당한다
  • 엔티티를 DB에 등록/수정/삭제/조회(CRUD) 하는 역할
  • 엔티티와 관련된 일을 처리하는 엔티티 관리자이다

EntityManagerFactory

  • 엔티티 매니저(Entity Manager)를 만드는 공장

영속성 컨텍스트 : 엔티티를 영구 저장 하는 환경

  • 엔티티 매니저를 생성할 때 하나 만들어진다
  • 엔티티 매니저를 통해서 영속성 컨텍스트에 접근하고 관리할 수 있다
  • 영속화 한다 : 엔티티 매니저가 자신의 영역에 넣어준다

Entity의 생명주기

  • 비영속(new/transient)

    • 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태
    • 해당 객체의 데이터가 변경되거나 말거나 실제 DB의 데이터와는 관련없고, 그냥 Java 객체인 상태
  • 영속(managed) : 엔티티 매니저를 통해 엔티티가 영속성 컨텍스트에 저장되어 관리되고 있는 상태

    데이터의 생성, 변경등을 JPA가 추적하면서 필요하면 DB에 반영합니다.

em.persist(member);
  • 준영속(detached) : 영속성 컨텍스트에 저장되었다가 분리된 상태
엔티티를 영속성 컨택스트에서 분리
em.detach(minsook);

영속성 컨텍스트를 비우기
em.clear();

영속성 컨택스트를 종료
em.close();
  • 삭제(removed) : 삭제된 상태
em.remove(member);

profile
앞만 보고 나아가자!

0개의 댓글