DOing
[JPA] 영속성 컨텍스트1 - 엔티티 생명주기 본문
영속성 컨텍스트?
: 논리적인 개념으로 눈에 보이지 않는다.
: 엔티티매니저를 통해서 영속성 컨텍스트에 접근한다.
: 엔티티를 영속화한다.
엔티티 생명주기
1. 비영속(new/transient)
: 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태
Member member = new Member();
member.setId("member1");
member.setUsername("회원1");
2. 영속(managed)
: 영속성 컨텍스트에 관리되는 상태
// 객체를 생성한 상태(비영속)
Member member = new Member();
member.setId("member1");
member.setUsername(“회원1”);
EntityManager em = emf.createEntityManager(); // 엔티티매니저를 통해 영속성 컨텍스트에 접근
em.getTransaction().begin();
// 영속성 컨텍스트에 객체를 들어간다 = 영속상태
// 영속성 컨텍스트에 의해 Member가 관리된다.
// 이때 바로 DB에 바로 쿼리날리지 않는다 (중요)
em.persist(member);
tx.commit(); // 트랜잭션을 커밋하는 순간 DB에 쿼리가 날라간다.
3. 준영속(detached)
: 영속성 컨텍스트에 저장되었다가 분리된 상태
//회원 엔티티를 영속성 컨텍스트에서 분리, 준영속 상태
em.detach(member);
4. 삭제(removed)
: 삭제된 상태
//객체를 삭제한 상태(삭제)
em.remove(member);
출처
: 인프런 강의 - 김영한님의 자바 ORM 표준 JPA 프로그래밍 - 기본편
'JPA' 카테고리의 다른 글
[JPA] 연속성 전이(CASCADE) (0) | 2021.07.15 |
---|---|
[JPA] Fetch - 즉시 로딩, 지연 로딩 (0) | 2021.07.14 |
[JPA] 영속성 컨텍스트3 - 플러시 (0) | 2021.07.14 |
[JPA] 영속성 컨텍스트2 - 영속성 컨텍스트의 이점 (0) | 2021.07.14 |
[JPA] 프록시(Proxy) (0) | 2021.07.14 |