[JPA] equals() & hashCode()

hyunwoo·2023년 2월 6일
0

Spring (fastcampus)

목록 보기
21/27

모든 JPA Entity들은 hibernate 구현체를 사용하는 기준으로 설명하자면
기본 생성자를 가지고 있어야한다.

equals() & hashCode()

동등성 검사하기 위해서 각 필드가 모두 맞는지 검사할 필요는 없다
객체와 객체를 비교할 때 생성시간, 일자, 제목, 본문이 다 같아도 id를 비교하면 되므로
id만 검사하게 만들어 perfomence를 극대화 할 수 있다.

그리고 id는 Not NUll이어야 하므로 check 해준다.


동일성, 동등성, equals, hashCode

  1. 동일성(Identity) 비교는 == 를 통해 메모리 내 주소값이 같은지 비교하는 것입니다.

  2. 동등성(Equality) 비교는 equals() & hashCode() 를 통해 논리적 지위가 같은지 비교하는 것입니다.

  3. 논리적 지위가 같다의 기준은 개발자가 요구사항에 맞게 오버라이드하여 재정의해야 합니다.

  4. equals 메소드에서는 "두 객체가 같다" 의 기준이 될 필드들을 비교하도록 재정의합니다.

  5. hashCode 메소드에서는 "두 객체가 같다" 의 기준이 될 필드들의 값으로 hashCode를 만들도록 재정의합니다.

출처: https://creampuffy.tistory.com/140

0개의 댓글