@Builder.Default
적용 – User.java
status
필드에 @Builder.Default
어노테이션을 추가하여 @Builder
사용 시 null
로 초기화되는 문제를 방지.@Builder
는 기본값을 무시하고 null
을 설정하기 때문에, 명시적으로 @Builder.Default
를 지정해야 정상 동작.null
로 인한 인증/인증 문제 또는 상태 관리 오류 방지.@EqualsAndHashCode(callSuper = false)
적용 – 6개 엔티티 클래스적용 대상:
Mortgage.java
HouseLoan.java
SubscriptionInfo.java
SubscriptionSupplyTarget.java
SubscriptionLocationInfo.java
SubscriptionPriceInfo.java
SubscriptionSpecialSupplyTarget.java
공통 변경사항:
@EqualsAndHashCode(callSuper = false)
어노테이션 추가import lombok.EqualsAndHashCode;
문 추가적용 이유:
이들 엔티티는 모두 Stamped
클래스를 상속하고 있음
Stamped
에는 createdAt
, updatedAt
등 시간 기반 감사 필드가 존재하며, 이들은 시간이 지나며 변경됨
callSuper = false
설정을 하지 않으면, 이러한 가변 필드가 equals()
와 hashCode()
비교에 포함되어 문제 발생 가능
Set
이나 Map
사용 시 객체를 다시 조회하지 못하거나 중복으로 인식해결 효과:
equals
/ hashCode
계산에서 제외시켜, 데이터 구조 내 안정적인 비교/검색 보장이번 수정은 다음과 같은 목적을 효과적으로 달성:
@Builder
및 @EqualsAndHashCode
관련 Lombok 사용의 안정성 보완