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

Inflearn Community Q&A

zpzp6271230209's profile image
zpzp6271230209

asked

Java ORM Standard JPA Programming - Basics

Embedded type

복합 키와 equals(), hasgCode()

Written on

·

457

1

안녕하세요 영한님

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

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

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

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

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

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

이 

JPAjava

Answer 1

2

yh님의 프로필 이미지
yh
Instructor

안녕하세요. zpzp627123님

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

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

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

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

감사합니다.

zpzp6271230209's profile image
zpzp6271230209

asked

Ask a question