인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

GSP님의 프로필 이미지
GSP

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

영속성 컨텍스트 2

주소값 출력

작성

·

162

0

findMember를 출력했을 때 객체의 주소값 처럼 나왔는데요 !

데이터베이스 테이블의 한 행의 주소값이라고 생각하면 될까요??

그리고 저 코드를 3번 연속 돌렸다고 했을 때, 데이터베이스에 중복해서 3개가 저장되지 않는 이유는 pk때문인가요? 아니면 영속성 컨텍스트의 캐시 때문인가요?

답변 1

1

안녕하세요, GSP님. 공식 서포터즈 codesweaver 입니다.
.
1. 데이터베이스에서 조회한 정보를 통해 생성한 Member 객체의 주소값 입니다.

2. 우선 지금과 같은 코드에서는 em.persist() 를 하는 순간 영속성 콘텍스트로 member과 관리됩니다. (아이디가 100L인 멤버). 그리고 이후 find()를 호출하고 있지만 아이디가 100L로, 이미 영속성으로 관리되고 있는 객체에 해당 아이디를 가진 member가 있으므로 이를 반환하게 됩니다. 즉, member와 findMember가 같은 객체(같은 주소값)가 됩니다.

.
감사합니다.

GSP님의 프로필 이미지
GSP

작성한 질문수

질문하기