본문 바로가기

JPA

2월 6일 JPA 값타입 비교

값 타입 비교

값 타입 : 인스턴스가 달라도 그 안에 값이 같으면 같은 것으로 봐야함

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단위에서 정의해야한다.

 

임베디드타입은 꼭 동등성 비교를 해주어야 한다.