회사에서 Spring boot 3 버전의 프로젝트를 새롭게 구성하던 중
위와 같은 에러를 마주했다.
원인은, 테이블의 PK키가 복합키인 테이블이 있었는데 복합키인지 spring에 알려주지 않아
![notion image](https://inblog.ai/_next/image?url=https%3A%2F%2Fwww.notion.so%2Fimage%2Fhttps%253A%252F%252Fprod-files-secure.s3.us-west-2.amazonaws.com%252Ff02ca0c9-9279-4cd3-bf61-49a4adc12473%252Ff74b5580-567c-4aea-9650-db3b2dc3e574%252FUntitled.png%3Ftable%3Dblock%26id%3D57fdd9aa-9ec2-4bfb-a0ed-26e801c121b5%26cache%3Dv2&w=3840&q=75)
위 경고가 발생하게 됐다. 해결은 간단하다.
@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