
프로젝트를 진행하던 중 의도하지 않은 값이 계속 나왔다.
| Store_Id | Holiday |
|---|---|
| 1 | 20220813 |
| 1 | 20220828 |
| 1 | every Friday |
위와 같이 나오는 것을 의도하였으나, 아래와 같은 결과가 나왔다.

* Holiday만 추출하여 저렇게 나온 것이다.
위의 오류는 DB의 정보와 일치하지 않아 발생하였다.
| Field | Type | Null | Key | Default | Extra |
|---|---|---|---|---|---|
| Store_Id | int(10) | NO | MUL | NULL | |
| Holiday | varchar(40) | YES | NULL |
위와 같이 Primary Key가 없음에도
@Getter @Setter
@AllArgsConstructor
@NoArgsConstructor
@Entity
public class Holiday {
@Id @Column(name = "Store_Id")
int id; // 가게 ID
@Column(name = "Holiday")
String holiday; // 휴일
}
Primary Key가 있다고 설정하여 발생하였다. 즉 DB 정보와 다른 정보를 설정하여 발생하였다.
따라서 본인은 DB에 Primary key를 설정해주었고,
ALTER TABLE Holiday ADD PRIMARY KEY (Store_id, Holiday);
Spring에도 Primary Key 설정을 해주었다.
@Getter @Setter
@AllArgsConstructor
@NoArgsConstructor
@Entity
@IdClass(Holiday.class)
public class Holiday implements Serializable {
@Id @Column(name = "Store_Id")
int id; // 가게 ID
@Id @Column(name = "Holiday")
String holiday; // 휴일
}
