• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

강의 마지막 부분에 JPA1 Book

22.09.09 17:28 작성 조회수 131

0

강의 마지막 부분에 name이 "JPA1 Book" 두 개면 하나는 처음에만 DB에 쿼리를 날려서 Book을 가져오고 그 다음 은 DB에 쿼리를 날리지 않고 영속성 컨텍스트에서 가져온다고 하셨습니다.

이 부분은 이해가 됩니다.

하지만 영속성 컨텍스트에서는 PK 값으로 객체가 구분 되는 것으로 알고 있는데 여기서 Book의 PK는 Long id 인데 단순히 name 이 "JPA1 Book"으로 같다고 동일 객체로 인식하여 DB를 거치지 않고 영속성 컨텍스트의 그 객체를 반환해주는 이유가 궁금합니다.

답변 1

답변을 작성해보세요.

0

y2gcoder님의 프로필

y2gcoder

2022.09.09

안녕하세요. tksrleo123님, 공식 서포터즈 y2gcoder입니다.

강의 15분 30초 경을 말씀하시는 것으로 보입니다.
강의에서 영한님께서 itemName에 커서를 두면서 말씀하셔서 그렇게 보이신 것 같습니다.
제가 이해한 바로는 JPA1 Book 이라는 워딩은 ItemName이 "JPA1 Book"인 여러 데이터가 아니라, ItemName이 "JPA1 Book"인 Item 데이터 하나를 말씀하시는 것이고, 그럴 경우 제일 먼저 조회한 쪽에서 JPA1 Book Item 객체를 영속성 컨텍스트에 저장하고 있기 때문에 나머지 부분에서 호출할 때는 DB를 다시 타지 않고 영속성 컨텍스트의 1차 캐시에서 호출해와서 사용한다고 말씀하시는 것으로 이해했습니다.


감사합니다.