반응형
상태값을 바꿀때 VO에 선언해 놓은 Enum 값을 넣으려고 아래와 같이 VO를 구성했는데 아래와 같은 오류가 발생했다.
Parameter value [SUCCESS] did not match expected type [java.lang.String (n/a)]
VO
@Data
@Entity
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "log_data")
public class LogVo {
public enum STATUS {
SUCCESS,
FAILED
}
@Id
@Column(name = "seq")
private long Seq;
@Column(name = "employee_no")
private String employeeNo;
@Column(name = "update_date")
private LocalDateTime updateDate = LocalDateTime.now();
@Column(name ="status")
private String status;
}
문제의 VO를 확인해보면 우선 타입이 안맞다는 부분은 작성했던 VO의 status는 String 이여서 enum 으로 설정한 STATUS 타입으로 변환하여 해결했다.
그런데도 에러가 발생하였는데 DB 테이블 STATUS에 빈값이 있었기 때문이다.
enum으로 선언한 컬럼은 enum 값중 하나가 무조건 들어가 있어야한다고 한다.
초반에 테이블값을 UNKNOWN으로 디폴트값을 설정하고 enum에 UNKNOWN 값을 추가했다.
반응형
'JAVA' 카테고리의 다른 글
[JAVA] String, TimeStamp, long 형변환 (0) | 2023.03.27 |
---|---|
[JAVA] replaceAll로 Mac Address 포맷 형식 맞추기 (0) | 2023.03.27 |
객체 기본형태 및 필요성 (0) | 2022.03.01 |