2020년 1월 22일 수요일

Invalid bound statement (not found) 오류의 처리 예

Mybatis 오류 처리



문제

아래와 같이 자바 오류가 발생하며 DB에서 데이터를 읽어오지 못한다

1월 23, 2020 9:13:12 오전 org.apache.catalina.core.StandardWrapperValve invoke
심각: Servlet.service() for servlet [action] in context with path [/ct2] threw exception [Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): eframework.pst.polyworld.mapper.PolyWorldMapper.searchNearCoodinate] with root cause
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): eframework.pst.polyworld.mapper.PolyWorldMapper.searchNearCoodinate
    at org.apache.ibatis.binding.MapperMethod$SqlCommand.(MapperMethod.java:189)
    at org.apache.ibatis.binding.MapperMethod.(MapperMethod.java:43)
    at org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:58)
    ... 생략 ...


해결

경로가 바르지 않아서 생긴 문제였다.
namespace의 자바 경로를 수정하였다.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="eframework.pst.polyworld.mapper.PolyWorldMapper">

    <select id="searchNearCoodinate" parameterType="map" resultType="map">
        SELECT
        ... 생략 ...