Health-Genie

[error] No enum constant enum명.값 해결방법

j9972 2023. 11. 21. 09:59
728x90

처음에 엔티티 설정시, 필드 설정을 이런식으로 하고

@Column(name = "status")
private Status status;

 

 

enum class를 

@Getter
public enum Status {
    YET, //  "아직 끝나지 않은 to-do"
    DONE // "끝난 to-do"
}

 

이런식으로 설정을 해주었고, 데이터를 삭제할때 위와 같은 에러를 만났다.

 

이유는 데이터 삽입시 entity class에 있는 status 필드에

@Enumerated(EnumType.STRING)

 

위와 같은 애노테이션을 넣지 않았기에, DB에는 status가 숫자값으로 저장되지만, 삭제할때는 enum 값을 받아오면서 생기는 충돌로 발생한것이다.

 

해당 애노테이션을 붙여줌으로써 DB에 존재하나 enum에 없는 값을 enum에 추가를 해서 맞춰 주거나 혹은 반대로 DB에서 enum에 없는 값을 삭제 해 주는 식으로 똑같이 맞춰주면 해결이 된다