Search

JPA 사용 시 주의사항

프로젝트 기간동안 겪은 JPA 주의사항
equals 와 hashCode 는 항상 재정의하기
웬만하면 Primary Key(ID)가 아닌 항상 변치 않고 해당 객체를 대표하는 의미를 가질 수 있는 비즈니스 키(business key)
이유는 Set등에 영속화가 되지 않은 신규 객체를 넣을 경우 신규 객체는 아직 프라이머리키가 지정되지 않은 상태이기 때문에 ID가 모두 null 혹은 0
근데 위와 같은 business key 를 찾기가 쉽지 않다.
equals 재정의할 때 프록시 객체 조심하기
getClass() != o.getClass() 이 부분에서 같은 값으로 의도했지만 프록시 객체라서 문제가 발생한다. 해당 부분을 !(o instanceof Class) 로 변경해야 한다.
쓰기 지연 저장소의 쿼리 순서 조심하기!