영속성 컨텍스트
기존에 영속성 컨텍스트에 대해 정리헀던 글을 첨부한다. 해당 글을 읽고 오면 이해해 더 도움이 될거라고 생각한다~
JPA Entity는 DB구조와 매핑되어 생성된다. Entity는 영속성 컨텍스트에 저장된다. 이런 Entity를 관리하는 게 EntityManager이다.
엔티티 매니저는 persist, merge, remove, close 메서드를 이용하여 엔티티의 상태를 다룬다.
뿐만 아니라, 1차 캐시로부터 엔티티를 조회(find)하거나, 쓰기 지연 저장소의 쿼리를 flush하여 DB와 동기화 시킨다.
엔티티를 영속 컨텍스트에 저장 후 INSERT 쿼리를 실행한다. 보통 커밋시점에 INSERT 쿼리를 실행하는데 (SEQUENCE) persist시점에 실행되는 경우도 있다(IDENTITY).
준영속 상태의 엔티티를 영속 상태로 변경하거나, 영속 상태가 아닌 엔티티를 복사해서 영속 상태의 새 엔티티로 만든다.
엔티티를 영속 컨텍스트에서 삭제 후 DELETE 쿼리를 실행한다.
EntityManager를 종료하여 내부 자원을 해제한다.
영속성 컨텍스트 또는 DB에서 엔티티를 조회한다.
영속성 컨텍스트의 쓰기 지연 저장소에 모여있던 변경사항을 DB에 반영한다.
em.flusth()