JPA에서 가장 중요한 개념 중 하나인 영속성 컨택스트에 대해서 간단하게 정리해보았다. 🤔
애플리케이션 계층과 디비 계층 사이에 존재하는 보이지 않는 논리적 개념의 계층
Member memberA = new Member();
memberA.setName("JPA Member");
EntityManager.persist(entity);
persist -> entity를 DB가 아닌 영속성 컨텍스트에 저장
엔티티매니저를 통해 영속성 컨텍스트에 접근
객체를 생성 하고 값을 셋팅한 상태
JPA랑 전혀 상관 없는 상태
DB에 저장 되어 있는 상태는 아님
엔티티매니저를 생성 후 데이터를 넣는 상태
EntityManager.persist(entity)
영속성 컨텍스트가 살아 있는 동안은 캐시를 사용 가능
-> 하지만, 실무에서는 크게 영향을 주지 않는다고 함 ‼️
Member a = em.find("Member.class", "member1");
Member b = em.find("Member.class", "member1");
a == b를 비교하면 true 출력