2024. 3. 20. 12:22ㆍ에러 모음
해결방법
<if test='useCode == "M"'> 같이 조건문의 한글자부분을 " " 로 묶어주면 된다.
<if test="useCode == 'Main'"> 같이 비교 문자가에 여러 글자인 경우에는 ' ' 를 사용해도 에러가 발생되지 않는다.
<if test="testParam == 'A'"> 같이 ' ' 안의 비교 문자가 한글자인 경우는 Exception이 발생하게 된다.
한 문자만 ' ' 로 감싸게 되면 이를 숫자로 인식하게 되어 Exception이 발생한다고 한다.
ERROR [cohttp://m.app.sechan.cmmn.com.service.impl.mainPageServiceImpl] nested exception is org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: java.lang.NumberFormatException: For input string: "M"
### Cause: java.lang.NumberFormatException: For input string: "M"
org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: java.lang.NumberFormatException: For input string: "M"
### Cause: java.lang.NumberFormatException: For input string: "M"
<select id="selectHistoryList" resultMap="resultHistory">
SELECT HISTORY_NO, HISTORY_DATE, HISTORY_CONTENT, USE_CODE
FROM SC_HISTORY
WHERE USE_CODE = 'A' OR USE_CODE = #{useCode}
<if test="useCode == 'M'">
ORDER BY HISTORY_NO DESC
</if>
<if test="useCode == 'H'">
ORDER BY HISTORY_NO ASC
</if>
</select>
이 쿼리를 사용했을 때 오류가 발생했고 오류의 원인을 찾지 못하고 GPT마저 다른 설정을 건드려야한다고 설명했다.
그래서 구글링 결과 따옴표 때문이었다.