본문 바로가기
JAVA/JPA

영속성 컨텍스트

by KkingKkang 2023. 2. 27.

JPA에서 가장 중요한 2가지

  1. 객체와 관계형 데이터베이스 매핑하기 (Object Relational Mapping)
  2. 영속성 컨텍스트

 

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

  • 고객의 요청이 있을 때 엔티티 매니저 팩토리를 통해서 엔티티 매니저를 생성한다.
  • 엔티티 매니저는 내부적으로 데이터베이스 커넥션을 사용해서  db를 사용함

영속성 컨텍스트

  • JPA를 이해하는데 가장 중요한 용어
  • 엔티티를 영구 저장하는 환경 이라는 뜻
  • EntityManager.persist(entity);

 

엔티티 매니저? 영속성 컨텍스트?

  • 영속성 컨텍스트는 논리적인 개념 - 눈에 보이지 않는다.
  • 엔티티 매니저를 통해서 영속성 컨텍스트에 접근
  • J2SE 환경 : 엔티티 매니저와 영속성 컨텍스트가 1:1
  • J2EE, 스프링 프레임워크 같은 환경 : 엔티티 매니저와 영속성 컨텍스트가 N:1

 

엔티티의 생명주기

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

 

 

//객체를 생성한 상태(비영속)
Member member = new Member();
member.setId("member1");
member.setUsername("회원1");

EntityManager em = emf.createEntityManager();
em.getTransaction().begin();

//객체를 저장한 상태(영속) db에 저장된 상태가 아님!!
em.persist(member);

 

 

반응형

'JAVA > JPA' 카테고리의 다른 글

터미널로 h2 실행하기 (맥OS)  (0) 2023.02.24
자바 ORM 표준 JPA 프로그래밍 - 기본편 OT  (0) 2023.01.29

댓글