[Spring] JPA 영속성 컨텍스트와 JOIN 활용
·
Java Study/Frameworks
영속성 컨텍스트의 주요 기능JPA의 영속성 컨텍스트는 엔티티를 관리하는 논리적 저장소로서, 성능 최적화 및 데이터 일관성을 유지하는 중요한 역할을 한다. 이를 잘 활용하면 불필요한 쿼리를 줄이고 성능을 향상시킬 수 있다. 1차 캐시엔티티 조회 시, 먼저 영속성 컨텍스트의 1차 캐시에서 데이터를 찾고, 없을 경우에만 DB에서 조회한다.같은 트랜잭션 내에서는 동일한 엔티티를 DB 조회 없이 1차 캐시에서 재사용할 수 있어 성능 최적화가 가능하다. 쓰기 지연`EntityManager.persist()`를 호출해도 즉시 DB에 반영되지 않고, 트랜잭션이 끝날 때 `flush()`가 발생하며 한 번에 실행된다.INSERT, UPDATE, DELETE 같은 SQL이 쓰기 지연 저장소에 모였다가 트랜잭션이 끝나면 한..