기술/오류 해결 기록
[Spring boot] Generating equals/hashCode implementation but without a call to superclass
yjkim_97
2023. 9. 26. 14:04
ℹ️ Development Environment
- Spring boot v3.0.1
- Gradle v7.6
- Java v17
- Lombok
🚫 현상
Spring boot gradle build시 아래 warning을 매 프로젝트마다 자주 만난다.
warning이기에 빌드시 문제는 없지만, 해소해주는 것이 좋다.
계속 까먹기 때문에 기록한다..
warning: Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type.
위 경고는 Lombok의 @Data 사용시 @EqualsAndHashCode(callSuper=false)을 추가하라는 내용이다.
@Data 어노테이션은 constructor, getter, setter, toString, equals, hashcode등의 method를 자동으로 생성한다.
이때 만들어진 equals와 hashcode method가 부모 클래스 필드까지 고려할지 안 할지를 @EqualsAndHashCode을 통해 설정할 수 있다.
callSuper=true | 부모 클래스(super class) 필드 값까지 고려하겠다. |
callSuper=false (default) | 본인 클래스 필드 값만 고려하겠다. |
🛠️ 해결 방안
@EqualsAndHashCode(callSuper = true) 어노테이션을 추가해주면 된다.
@Data
@EqualsAndHashCode(callSuper = true)
public class Comment extends BaseDomain
{
...
}