작성한 질문수
자바 ORM 표준 JPA 프로그래밍 - 기본편
값 타입의 비교
해결된 질문
작성
·
359
1
equals()를 오버라이딩할 때 프록시 객체일 경우를 대비해서 get() 방식으로 비교하는게 좋다고 하셨는데. 왜 프록시 객체일때는 get 방식을 써야하는지 설명 부탁드립니다.
답변 1
4
안녕하세요. terry9611님, 공식 서포터즈 y2gcoder입니다.
아시겠지만 프록시 객체는 말그대로 대리인이라 원본 객체가 가지고 있는 정보를 전부 가지고 있지 않습니다. 그래서 그냥 필드값으로 비교하려고 하면 프록시 객체이기 때문에 예외가 발생합니다. 반면 getter(구분할 수 있는 pk 값 제외)를 사용하게 되면 내부적으로 쿼리를 날려 프록시 객체를 원본 객체로 바꾸게 됩니다. 그래서 실제 객체를 가져오고 또한 실제 값을 가져오기 때문에 비교가 가능해집니다.
감사합니다.