프로젝트를 진행하던 중 의도하지 않은 값이 계속 나왔다.
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; // 휴일
}