EntityManager API를 외워 나열하는지, 상태 모델과 영속성 컨텍스트 동작까지 연결해 보는 사람인지를 가른다.
EntityManager는 영속성 컨텍스트와 상호작용하며 엔티티 생명주기를 책임진다. persist·merge·remove·detach/clear/close 같은 API로 비영속·영속·준영속·삭제 상태를 전환하고, flush로 변경 내용을 DB와 동기화한다. 영속 상태 엔티티는 1차 캐시에 올라가 동일 식별자 조회를 한 번에 처리하고, 변경 감지(dirty checking)로 명시적 update 호출 없이도 SQL이 자동 생성된다. JPQL/Native Query 실행도 같은 매니저가 책임진다. 즉 _영속성 컨텍스트의 입출구_라고 보면 된다.
"update를 호출 안 했는데 SQL이 나가더라"를 dirty checking으로 설명해본 적이 있다면 그대로 답변 후크가 된다
flush 시점을 조정해 "중간 검증 쿼리"를 강제로 보낸 적이 있다면 운영 디버깅 경험으로 연결할 수 있다
OSIV on/off 환경에서 LazyInitializationException을 만난 적이 있다면 영속성 컨텍스트 범위 이야기로 자연스럽게 이어진다
아직 공개된 답변이 없어요. 첫 공개 답변을 남겨보세요.