사용자 도구

사이트 도구


java:hibernate:gotchas

문서의 이전 판입니다!


Hibernate Gotchas

하이버네이트에 관해 항상 기억해둬야 할 사항들을 정리해 둔다.

hashCode와 equals를 항상 구현한다

hashCode와 equals를 항상 구현해야 한다.

이때 DB 프라이머리키(ID)가 아닌 항상 변치 않고 해당 객체를 대표하는 의미를 가질 수 있는 비즈니스 키(business key)를 hashCode와 equals의 대상으로 삼아야 한다. 이유는 맵(Map)등에 신규 객체를 넣을 경우 신규 객체는 아직 프라이머리키가 지정되지 않은 상태이기 때문에 ID가 모두 null 혹은 0이며 이 경우 맵에 저장할 때 equals가 항상 true 여서 이전의 값을 뒤에 저장한 값이 계속 덮어써버리는 현상이 발생하기 때문이다.

따라서 ID를 equals/hashCode의 기준으로 삼을 경우 매우 주의해야 한다.

참조

java/hibernate/gotchas.1316195715.txt.gz · 마지막으로 수정됨: 2011/09/17 02:55 저자 kwon37xi