Entity에 DB 정보를 정확히 입력하자

SeungHyeon·2022년 8월 11일
0

Error

목록 보기
3/3
post-thumbnail
post-custom-banner

문제 발생

프로젝트를 진행하던 중 의도하지 않은 값이 계속 나왔다.

Store_IdHoliday
120220813
120220828
1every Friday

위와 같이 나오는 것을 의도하였으나, 아래와 같은 결과가 나왔다.

* Holiday만 추출하여 저렇게 나온 것이다.


발생원인

위의 오류는 DB의 정보와 일치하지 않아 발생하였다.

FieldTypeNullKeyDefaultExtra
Store_Idint(10)NOMULNULL
Holidayvarchar(40)YESNULL

위와 같이 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; // 휴일

}

해결 완료

profile
어제보다 더 나은 오늘이 되자
post-custom-banner

0개의 댓글