발생 : 아래와 같이 ajax 호출 시 발생

 

var formData = $('#searchFrm').serialize();
$.ajax({
    type: "post",
    url: url,
    data : formData,
    dataType:"json",
    success: function(data){
        alert('저장되었습니다.');
    },
    error: function (){
        alert('에러가 발생하였습니다.');
    }
});

 

상황 : VO 숫자형 변수중 default 세팅이 안되어 있을때 발생함.

 

해결 : VO클래스에 default 값 세팅

 

ex) private long pageNum;   ->  private long pageNum = 0;

반응형

오류 : Mybatis error code [17004]; 부적합한 열 유형: 1111

 

발생 : 마이바티스 쿼리xml에서 쿼리 호출 시 발생

 

상황 : form에서 넘긴 데이터의 VO 변수가 바인드 된다고해도 사용하는 변수가 null값으로 세팅되면 발생함.

 

해결1 : #{value1, jdbcType=VARCHAR2} 와 같이 jdbcType을 일일이 지정해 주거나

 

해결2-1 : 또는 context-sqlMap.xml 파일을 열어보면 아래와 같은 bean의 property 네임이 configLocation 인 xml파일을 연다.

 

 <beans profile="local">
  <bean id="sqlSessionFactoryOracle" class="net.smartfarmkorea.common.util.system.RefreshableSqlSessionFactoryBean">
   <property name="dataSource" ref="egov.dataSource"/>
   <property name="configLocation" value="classpath:/sqlmap/config/sqlmap_config_oracle.xml" />
   <property name="mapperLocations" value="classpath:/sqlmap/testproject/oracle/**/*.xml" />
   <property name="interval" value="2000" />
  </bean>
 </beans>

 

해결2-2 : 오픈한 xml파일에 아래 세팅을 추가해 준다.

 

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

잘 사용하던 화면에서 갑자기 아래 에러가 발생

 

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException

 

마이바티스 문법상 아래 문법이 맞으나

   <if test="searchItemCode != '0'">
   AND TRIM(T1.ITEM_CODE) = #{searchItemCode}
   </if>

 

똑똑한 컴퓨터는 1자리문자는 varchar가 아닌 char 로 인식하여 에러가 발생됨

   <if test='searchItemCode != "0"'>
   AND TRIM(T1.ITEM_CODE) = #{searchItemCode}
   </if>

 

알고는 있었으나 가끔씩 까먹음... ㅠ.ㅜ

반응형

+ Recent posts