JPA에서 가장 중요한 2가지
- 객체와 RDB 매핑하기
- 영속성 컨텍스트
영속성 컨텍스트
- 엔티티를 영구저장하는 환경이라는 뜻이다.
- EntityManager.persist(entity) 를 통해서 DB에 저장하는게 아니다
- Entity를 영속성 컨텍스트에 저장하는 것이다.
- 영속성 컨텍스트는 논리적인 개념으로, 눈에 보이지 않는다.
- 엔티티매니저를 통해서 영속성 컨텍스트에 접근한다.
엔티티의 생명주기
비영속(new/transient)
- 영속성 컨텍스트랑 전혀 관계가 없는 새로운 상태
- 위 예시는 Member 객체만 생성하고 EntityManager에 아무것도 넣지 않은 상태이므로 JPA와 상관 없는 상태이다.
영속(managed)
- 영속성 컨텍스트에 의해 관리되는 상태
- persist 메서드에 의해 EntityManager 안으로 들어가 영속 상태가 된다.
- 여기서 다음과 같이 sout 해주면 persist가 DB에 저장하는 작업과는 별개라는 것을 알 수 있다.
- BEFORE와 AFTER 사이에 어떤 쿼리도 적용되지 않는다.
준영속(detached)
- 영속성 컨텍스트에 저장되었다가 분리된 상태
삭제(removed)
- 삭제된 상태
'[Spring] > JPA 프로그래밍 - 기본편' 카테고리의 다른 글
플러시 (0) | 2023.04.09 |
---|---|
영속성 컨텍스트 2 (0) | 2023.04.08 |
Hello JPA - 애플리케이션 개발 (0) | 2023.03.28 |
Hello JPA - 프로젝트 생성 (0) | 2023.03.27 |
JPA 소개 (0) | 2023.03.27 |