728x90
반응형
<select id="***" parameterClass="String" resultClass="hashMap" >
SELECT *
FROM
$TABLE$
</select>
이런식으로 동적으로 테이블에서 컬럼을 가져오는 쿼리를 쓰는데... 첫번째 실행은 무리없이 돌아가나
두번째 부터는 계속해서
java.sql.SQLException: 부적합한 열 이름
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
at oracle.jdbc.driver.OracleStatement.getColumnIndex(OracleStatement.java:3319)
요놈의 에러가..
구글링 해보니 역시 같은 상황을 겪고 있는 분들이 더러 있는듯.
ibatis에서는 쿼리문 id마다 캐쉬를 저장하고 있기 때문에
캐쉬값에 따라 result값을 맵핑한다고...
문제 해결을 위해서는 remapResults="true" 속성을 추가해주면, 기존 캐쉬를 무시하고
현재 쿼리를 기본으로 맵핑한단다.. (default는 false)그래서 결론은 이런식으로..
<select id="***" parameterClass="String" resultClass="hashMap" remapResults="true" >
SELECT *
FROM
$TABLE$
</select>
728x90
반응형
'SQL > IBATIS' 카테고리의 다른 글
ibatis parameterMap 인라인 파라미터 매핑과 외부 파라미터 맵의 장.단점 및 예제 (0) | 2015.11.03 |
---|---|
ibatis - 캐쉬제거 remapResults (0) | 2015.10.21 |
java-ibatis-mssql, 소수점 문제 (0) | 2014.10.23 |
ibatis selectkey 활용 (0) | 2014.10.17 |
ibatis에서 queryForList와 queryForMap의 차이 (0) | 2014.08.21 |
ibatis에서 or절 사용하기 (0) | 2014.04.12 |
ibatis Boolean 사용법 (0) | 2014.04.12 |
동적쿼리 예제 isGreater, isNull,isEmpty 등 (0) | 2014.04.12 |