개발은 하는건가..

[에러] java.sql.SQLException: Out of range value for column 본문

SpringBoot , Thymeleaf

[에러] java.sql.SQLException: Out of range value for column

수동애비 2022. 3. 17. 12:10
반응형

 

mybatis 사용 중인데 저 에러가 나와서 한참 당황했다.
보통 mapper xml 의 쿼리의 resultType 으로 지정된 타입과 쿼리 결과 값이 안맞을 때 발생하는데 이번엔 그 경우가 아니였음.

아래와 같이 DTO 을 정의하고  String 타입의  value 를  int  타입으로도 설정할 수 있는 함수를 오버로딩 해놨었는데 mapper xml 에서 쿼리 실행 후 결과를 저 놈을 통해서 할당하면서 타입이 맞지 않아 발생했던 것이다.

이 경우 뭔가 방법이 있을것 같긴한데 방법을 찾아보는 귀찮음에 비해 크게 이득이 없기에 setValue(int) 을 setIntValue(int) 로 변경하였다.

 

// ---- DTO Class -------
@Setter
@Getter
public class PropertyDTO {
    public String key, value;    
   
    public PropertyDTO(String key, String value) {
        this.key = key;
        this.value = value;    
    }

    public int getIntValue() {
        int result = 0;

        if (value != null) {
        	try {
            	result = Integer.valueOf(value);
            } catch(Exception e) {
            	// Nop
            }
        }

        return result;
    }

    public void setValue(int val) {     <= 요놈 이름을 setIntValue 로 바꿔줘야 했다.
        value = String.valueOf(val);
    }
}


// ---- Mapper XML -------
 <select id="getProperty" parameterType="String" resultType="PropertyDTO">
	SELECT key, value FROM Properties 
 </select>

 

Comments