🚀 영속성 컨텍스트

🔨 영속성 컨텍스트의 이점

♟ 1차캐시

<aside> 💡 영속성 컨텍스트에는 1차캐시가 존재

엔티티를 영속성 컨텍스트에 저장하는 순간 1차캐시에 객체가 key , value 값으로 저장.

엔티티 매니저가 조회를 할때 먼저 영속성 컨택스트에 있는 1차캐시에서 해당 엔티티를 찾고 엔티티가 존재할 경우 DB에 접근하지 않고 반환

엔티티가 존재하지 않을경우 엔티티 매니저가 em.flush() 할때에 데이터베이스에 접근해서 엔티티를 꺼내오고 해당 엔티티를 1차캐시에 저장

</aside>

🎁 동일성 보장

<aside> 💡 영속성 컨텍스트에서 꺼내온 객체는 동일성이 보장 같은 엔티티를 두번 조회할 경우 두개의 엔티티는 동일한 엔티티

1차 캐시로 반복 가능한 읽기(REPEATABLE READ) 등급의 트랜잭션 격리 수준을  데이터베이스가 아닌 애플리케이션 차원에서 제공

</aside>

🩹 엔티티 생명주기