Spring boot Composite-id class does not override equals()

김주혁's avatar
Jun 06, 2024
Spring boot Composite-id class does not override equals()
 
회사에서 Spring boot 3 버전의 프로젝트를 새롭게 구성하던 중
 
위와 같은 에러를 마주했다.
 
원인은, 테이블의 PK키가 복합키인 테이블이 있었는데 복합키인지 spring에 알려주지 않아
notion image
 
위 경고가 발생하게 됐다. 해결은 간단하다.
 
@Getter @Setter @AllArgsConstructor @NoArgsConstructor @Builder @Entity @Table(name = "board") public class board implements Serializable { @Id private long userId; @Id private long postId; private long createdBy; private String createdAt; }
 
 
위 코드 처럼 @Id만 사용된 어노테이션을 베이스로 사용하면 경고가 발생하기 때문에
@Getter @Setter @AllArgsConstructor @NoArgsConstructor @Builder @Entity @EqualsAndHashCode @IdClass(Board.class) @Table(name = "board") public class board implements Serializable { @Id private long userId; @Id private long postId; private long createdBy; private String createdAt; }
 
@EqualsAndHashCode 어노테이션과
@IdClass(Class.class) 어노테이션을 사용하면 해당 에러 문구를 없앨 수 있다.
Share article

vlogue