inblog logo
|
vlogue
    Java & Spring BootError

    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

    RSS·Powered by Inblog