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

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

기팝님의 프로필 이미지
기팝

작성한 질문수

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

임베디드 타입

복합 키와 equals(), hasgCode()

작성

·

438

1

안녕하세요 영한님

책 261P 을 보다가 궁금점이 생겨서 질문드립니다.

1.영속성 컨텍스트는 엔티티의 식별자를 키로 사용해서 엔티티를  관리한다 .

2.그리고 식별자를 비교할 때 equals()와 hashCode()를 사용한다.....

따라서 복합 키는 equals와 hashCode를 필수로 구현해야한다.

1 , 2 내용은 복합 키가 아닐때에도 적용되지않나요 ?

왜' 복합 키' 일때만 필수로 구현을 해야할까요 ??

이 

답변 1

2

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

안녕하세요. zpzp627123님

해당 내용은 ID 클래스에 equals, hashCode를 구현해야 한다는 뜻입니다.

이것을 구현하지 않으면 값이 같아도 equals에서 비교시 실패할 수 있습니다.

식별자가 다른 것 처럼 인식되는 큰 문제가 발생하는 것이지요.

복합 키가 아닌 Long 같은 일반 타입들은 내부에 equals, hashCode가 이미 구현되어서 값이 같으면 같음을 보장합니다.

감사합니다.

기팝님의 프로필 이미지
기팝

작성한 질문수

질문하기