강의
인프런 강의 - JPA 수강 영속성 컨텍스트
- 고객이 요청을 해올 때, 각 요청마다 EntityManager가 만들어진다. 이때 em은 영속성 컨텍스트를 갖는다.
- 이것은 1차 캐시를 내부에 갖고 있는데, 이것은
em.persist(),em.update(),em.remove()와 같은 함수에서 이점을 준다.- 1차 캐시: <@Id, Entity> Map 형태로 객체들을 캐싱해둔다.
- persist의 경우
- 바로 DB에 저장하지 말고, commit 직전까지는 쓰기 지연 저장소에 쿼리를 저장해두다가 commit 시점에 flush한다.
쓰기 지연, 엔티티 수정 시 변경 감지와 같은 이슈들도 있다.