a == b
연산자로 확인할 수 있다.equals()
메서드에 의해 정의되는 개념.
때때로 등가성(equivalence)이라 말하기도 한다.a.equals(Object b)
메서드에 정의된 대로 같은 상태를 가지면 두 객체는 동등한 것이다.equals()
를 명시적으로 재정의하지 않는 클래스는 ==로 객체 동일성을 비교하는 java.lang.Object
에 정의된 구현을 상속한다.a == b
이면, a.equals(b)
와 b.equals(a)
가 모두 참이어야 한다.@Id
후보키(candidate key)
테이블의 특정 로우를 식별하는 데 사용할 수 있는 컬럼 또는 컬럼의 집합이다.
기본키가 되려면 후보키가 다음과 같은 조건을 충족해야 한다
<aside> 👉 JPA에서는 API로 기본키 값을 업데이트하는 것을 지원하지 않는다.(불변성을 가질 것을 기대) 우회하려고 하면, 하이버네이트의 캐싱, 변경 감지 엔진에 문제가 발생할 수 있다.
</aside>
자연키(natural key)
대리키(surrogate key) - 대리키를 기본키로 선정하는 것을 적극 권장