개발여행의 블로그

[오류, 에러] - setter가 작동되지 않을 때 ( Cause: org.apache.ibatis.type.TypeException: Error setting null for parameter ) 본문

개발/오류(error)

[오류, 에러] - setter가 작동되지 않을 때 ( Cause: org.apache.ibatis.type.TypeException: Error setting null for parameter )

개발 여행 2020. 6. 13. 22:46
728x90

 

간단하게 Spring Framework를 사용해 비동기 게시판을 작성하던 중 에러 발생하여 아래와 같은 메시지가 console에 기록되었다.

 

확인해보니, mapper로 넘어오기 전 값을 set 해주지 못하여 null값이 들어가는 상태였다.

새 글을 등록할 때, 클라이언트에게서 넘어온 데이터들을 DTO로 받은 후 VO 형태로 변환하여 DB에 입력하는 방식으로 구성하였는데 그중 category를 set 하는 코드가 빠져서 아래와 같은 에러가 발생하게 되었다. 

 

ERROR log4jdbc.log4j2 - 1. PreparedStatement.setNull(4, 1111) java.sql.SQLException: 부적합한 열 유형: 1111

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property='category', mode=IN, javaType=class java.lang.Object, jdbcType=null, numericScale=null, resultMapId='null', jdbcTypeName='null', expression='null'}.
Cause: org.apache.ibatis.type.TypeException: Error setting null for parameter #4 with JdbcType OTHER .
Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property.

Cause: java.sql.SQLException: 부적합한 열 유형: 1111

 

 

 

VO객체를 객체화하고, DTO 안의 데이터(category에 저장된 데이터)를 VO로 transfer하는 set 코드를 추가하여 문제가 해결되었다.

BoardVO board = new BoardVO();
board.setCategory(category);

 

728x90
Comments