값 타입 비교
값 타입 : 인스턴스가 달라도 그 안에 값이 같으면 같은 것으로 봐야함
int a = 10;
int b = 10;
a = b ; true
address a = new Address("서울시");
address b = new Address("서울시");
a = b ; false;(객체의 참조값이 다르다.)
값 타입의 비교
-동일성 (identity) 비교 : 인스턴스의 참조값을 비교 == 사용;
-동등성(equivalnce) 비교 : 인스턴스의 값을 비교 . equlas()
-값 타입은 a.equals(b) 를 사용해서 동등성 비교를 해야함;
-값 타입이 equals()메소드를 적절하게 재정의(주로 모든 필드 사용)
그냥 euqals()를 하면 false가 반환되고
임베디드 클래스에서 equals메소드를 오버라이드 받아 만든다.
후에 address.equals(address2)하면 true가 나오게 된다.
equals외 hash는 lombock에 포함되어 있어서 class단위에서 정의해야한다.
임베디드타입은 꼭 동등성 비교를 해주어야 한다.
'JPA' 카테고리의 다른 글
| 2월 7일 JPA 값타입 컬렉션에 값 넣기 (0) | 2023.02.07 |
|---|---|
| 2월 7일 JPA 값타입 컬렉션 저장@ElementCollection ,@CollectionTable (0) | 2023.02.07 |
| 2월 6일 JPA 값타입과 불변객체 (0) | 2023.02.06 |
| 2월 3일 JPA 임베디드 속성의 재정의 (0) | 2023.02.03 |
| 2월 3일 JPA 임베디드 클래스 실사용 (0) | 2023.02.03 |