- 엔티티를 영구 저장하는 환경
JPA는 영속 컨텍스트라는 1차 캐시에 값을 저장해둠
em.persist(Member);
--> 이때 바로 쿼리를 날리는 게 아니라,
영속성 컨텍스트에 저장함.
Member a = em.find(Member.class, 1L);
Member b = em.find(Member.class, 1L);
--> 쿼리는 a를 조회할 때 한번만 나간다.
a와 b는 동일한 엔티티다.
Member a = em.find(Member.class, 1L);
a.setName("new name");
--> 업데이트 쿼리 작성할 필요 없이 트랜잭션이 커밋될 때,
영속성 컨텍스트의 스냅샷을 비교하여 자동으로 값이 업데이트 된다.
영속성 컨텍스트를 비우지 않음
영속성 컨텍스트의 변경내용을 데이터베이스에 동기화
em.clear(); --> 영속성 컨텍스트를 완전히 초기화
em.close(); --> 영속성 컨텍스트를 종료