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

우가우가님의 프로필 이미지
우가우가

작성한 질문수

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

영속성 컨텍스트 2

영속 엔티티 동일성 보장해주는 코드가 어디에 있는지 궁금합니다

해결된 질문

작성

·

396

0

안녕하세요 영한님!!!
동일성 보장을 애플리케이션 쪽에서 해주는 코드를 뜯어보고 싶은데 보이지가 않습니다

package org.hibernate.internal;

public class SessionImpl extends AbstractSessionImpl implements EventSource, SessionImplementor, HibernateEntityManagerImplementor

SessionImpl 클래스를 보니까 Map<String, Object> 형태로 저장하기 때문에 동일성이 보장이 되는 걸까요??

어느 부분에서 같다고 판별을 하는지 너무 궁금합니다!!!!

제가 내린 결론은 MetamodelImpl 클래스에 entityPersisterMap 에서 판별을 하는 것 같습니다!!

 

 

 

 

수정 -----------------------

 

 


 

친구가 이거 같다고 해서 이 클래스를 보니까 hascode equals 가 오버라이딩 되어 있었습니다.
제가 이해한 바로는

 

이 entitykey 가 같은 객체를 반환하니까 동일성보장이 된다고 생각합니다.

https://docs.jboss.org/hibernate/orm/3.2/api/index.html
공식문서를 보니까 EntityKey 가 Serializale id 이 고윳값으로 구분하는 것 같습니다!!

제가 이해한게 맞을까요?

답변 1

2

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. dnr3655님

저도 하이버네이트가 정확히 어떻게 이런 부분을 구현하고 있는지는 잘 모릅니다^^

관련해서 자세히 아시는 분 있으면 도움 부탁드려요.

감사합니다.

우가우가님의 프로필 이미지
우가우가
질문자

답변 감사합니다!!

우가우가님의 프로필 이미지
우가우가

작성한 질문수

질문하기