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

terry9611님의 프로필 이미지
terry9611

작성한 질문수

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

값 타입의 비교

프록시 객체 비교에 대해서 질문 드립니다.

해결된 질문

작성

·

359

1

equals()를 오버라이딩할 때 프록시 객체일 경우를 대비해서 get() 방식으로 비교하는게 좋다고 하셨는데. 왜 프록시 객체일때는  get 방식을 써야하는지 설명 부탁드립니다.

답변 1

4

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

아시겠지만 프록시 객체는 말그대로 대리인이라 원본 객체가 가지고 있는 정보를 전부 가지고 있지 않습니다. 그래서 그냥 필드값으로 비교하려고 하면 프록시 객체이기 때문에 예외가 발생합니다. 반면 getter(구분할 수 있는 pk 값 제외)를 사용하게 되면 내부적으로 쿼리를 날려 프록시 객체를 원본 객체로 바꾸게 됩니다. 그래서 실제 객체를 가져오고 또한 실제 값을 가져오기 때문에 비교가 가능해집니다.


감사합니다.

terry9611님의 프로필 이미지
terry9611

작성한 질문수

질문하기