“엔티티를 영구 저장하는 환경”이라는 뜻

EntityManager.persist(entity);

.

영속성 컨텍스트는 논리적인 개념이므로, 눈에 보이거나 하지 않는다 대신 엔티티 매니저를 통해서 영속성 컨텍스트에 접근이 가능하다.

EntityManager을 생성하면 1:1로 영속성 컨텍스트 공간이 생성한다.

엔티티의 생명주기

Untitled

영속성 컨텍스트

em에 저장이 되는 순간 영속된다고 한다. persist 명령어를 사용하면 DB에 접근하여 값을 세팅할 것 같지만, 영속성에 의해서 1차 캐시 공간에서만 이 작업이 이루어 진다. 그리고 트랜잭션에 의해서 sql문이 날아간다.

즉, 트랜잭션단위로, 영속성에 의하여 DB에 직접 접근하는 것이 아니라, 1차 캐시에 먼저 접근하는 것이다.

Member member = new Member();
member.setId(100L);
member.setName("HelloJPA");

em.persist(member);