본문 바로가기

Trouble Shooting

[Spring Boot] Entity 자료형으로 Enum 사용시 Out of range value for column 오류 해결 방법

문제 발생

Entity를 만들고 DB를 연결하여 조회를 하려고 했는데

Out of range value for column 에러가 발생했다.

더보기

java.sql.SQLException: Out of range value for column 'service54_7_0_' : value A at org.mariadb.jdbc.internal.com.read.resultset.rowprotocol.TextRowProtocol.getInternalLong(TextRowProtocol.java:338) at org.mariadb.jdbc.internal.com.read.resultset.rowprotocol.TextRowProtocol.getInternalInt(TextRowProtocol.java:257) at org.mariadb.jdbc.internal.com.read.resultset.SelectResultSet.getInt(SelectResultSet.java:1022) ...

SQL에서 난 것 같은데 구글링을 아무리해도 안나와서 코드만 한참 들여다봤다.

문제가 있는 코드는 아래 코드였다.

@Column(name = "service", nullable = false)
private ServiceType service;

 

해결 방법

위 에러는 @Enumerated 어노테이션을 붙이지 않아 발생한 오류였다.

아래와 같이 수정하면 된다.

@Enumerated(EnumType.STRING) // 추가
@Column(name = "service", nullable = false)
private ServiceType service;

 

너무 기본적인 내용이라 안 나온건지, 구글링을 잘못한 건지 모르겠지만

정말 간단한 이유였는데 이런 부분을 놓쳐서 속상했다.

다음에 코딩할 때에는 사소한 부분도 신경써가며 코딩해야겠다.