IT

[Mybatis] Oracle java.sql.SQLException: 부적합한 열 유형: 1111

data-cloud 2025. 1. 20. 22:03
반응형

 

 

 

🐛 오류 현상

Request processing failed; nested exception is org.springframework.jdbc.UncategorizedSQLException: Error setting null for parameter #1 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: java.sql.SQLException: 부적합한 열 유형: 1111

위의 오류 문구가 발생하는 케이스는 다양하다.

  • 데이터 타입이 다른 경우
  • Map을 파라미터로 넘겼을 때 해당 맵안에 파라미터가 null인 경우
  • ...

 

INSERT 수행 시, 특정 컬럼은 값이 있을 수도 있고 없을 수도 있는 상황이었으며, null을 허용해야 하는 상황이었다.

 

 

반응형

🐛 오류 조치

만약 USER 테이블의 전화번호 컬럼(USER_TEL)이 경우에 따라 NULL로 INSERT 되어야 한다고 가정해보자.
USER_TEL에 NULL을 허용하는 방법은 다음과 같다.

CASE 1. 타입명시

INSERT INTO USER (
    USER_ID, 
    USER_NAME, 
    USER_TEL 
) VALUES (
    #{userID},
    #{userName},
    #{userTel, jdbcType=VARCHAR}
)

 

 

CASE 2. 설정파일 수정 - xml

<settings>
    <setting name="cacheEnabled" value="false" />
    <setting name="jdbcTypeForNull" value="NULL" />
</settings>

 

 

CASE 3. 설정파일 수정 - Java Config

org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration();
configuration.setCacheEnabled(false);
configuration.setJdbcTypeForNull(null);

 

 

 

반응형

'IT' 카테고리의 다른 글

[Java] 접근제어자  (1) 2025.01.20
[Nginx] 오류 페이지 설정  (1) 2025.01.20
[GoF] 디자인 패턴이란?  (1) 2025.01.20
[Java] String, StringBuffer, StringBuilder 차이  (1) 2025.01.20
[Java] 클래스, 객체, 인스턴스 차이  (1) 2025.01.20