작성
·
279
·
수정됨
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요?예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예
[질문 내용]
동일성 보장에서 들어주신 예시에서 질문이 있습니다.
findMember1과 findMember2의 pk값 즉 영속성 컨텍스트에서 객체의 id값이 동일한데, 이때 캐시에 어떻게 저장이되는지 궁금합니다.
[ id / 객체 ]형식으로 캐시에 저장된다고 하셨는데,
그럼 [101L/findMember1], [101L/findMember2] 이렇게 캐시에 저장이 되는건가요?
캐시에 저장되는 Id값이 캐시 조회시 사용되는 주소값인가요?
캐시에 저장되는 id 값은 중복을 허용하는건가요?
답변 1
0
안녕하세요. 백지우님, 공식 서포터즈 코즈위버입니다.
Map 형태를 생각하시면 될것 같아요. Key, Value 형태로 데이터를 보관하며 Key 중복을 허용하지 않습니다. 그래서 findMember1()을 실행할 때 회원번호가 101인 객체를 찾았다면 이를 map.put(101L, member); 와 같은 형태로 저장하겠죠. 그리고 이후 fineMember2()에서 데이터베이스에 가기 전, map에 101 키가 있는지 조회하는데요, 이때 101을 찾을 수 있으므로 이 값을 재활용하게 됩니다.
감사합니다.