묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
요청, 트랜잭션, 영속성컨택스트의 관계
고객의 요청당 엔티티매니저(영속성컨텍스트)가 생성된다고 설명해주셨습니다. 아래 두가지 중에 어떤 개념이 올바른 것인지 헷깔립니다. 고객의 요청을 한 개의 단일 트랜잭션으로 생각하고 요청한개당 영속성컨텍스트가 1개가 생성되는 것으로 이해하면, 생성과 소멸한번만 하고 이 과정을 요청마다 반복하는 것으로 이해할 수 있을까요?. 반면, 요청하나에 여러개의 트랜잭션을 갖는다면 요청 하나에 여러번의 영속성컨택스트 생성소멸이 반복되는 것으로 해석할 수 있는 것인지 궁금합니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
프록시와 영속성 컨텍스트 스냅샷
안녕하세요 김영환님! 프록시가 영속성 컨택스트에 의해 관리되고, 동일 트랜잭션에서는 영속성 컨텍스트 내에 동일성을 위해 엔티티는 프록시에 저장된다는 답변을 보고 질문을 남깁니다. 저는 그래서 1차 캐시에 프록시가 저장이 되고 (id는 동일하므로) 실제 엔티티 객체는 1차 캐시에 직접적으로 저장되기 보다는 프록시에 저장(래핑) 되는 형태로 이해했는데요. 그렇다면 스냅샷은 어떻게 관리되고, 더티체킹은 어떻게 되는지 궁금합니다. 프록시와 감싸여진 실제 엔티티 모두가 스냅샷이 저장되나요? 더티체킹은 어떻게 진행되나요??? 추가적으로 프록시의 id는 getReference()를 호출하면서 입력해준 id가 되는데 이때 id가 db 상에 존재하지 않는다면 초기화때 어떤 예외가 발생하는지도 궁금합니다. 좋은 강의 감사합니다!!