iBatis的AutoResultMap 默認配置使用時候出現的問題
Posted on 2006-11-17 21:19 Dr.Water 閱讀(2268) 評論(0) 編輯 收藏 所屬分類: Java 隨手貼演示的sqlMap 配置文件,通過'$'和'*'的使用,達到動態映射Table到一個map的作用











也就是在IBatis里面配置一個statment,去執行多個查詢,充分利用了map映射的特性.
去執行多個查詢。
比如
select * from myexample
select * from mywork
使用"*" 而且沒有用resultClass 指定返回
但是在默認配置下,在使用的時候的時候
2次以上傳入不同的$dbName$,$tabeName$ 調用這個useAutoResultMapExample,
就要報java.sql.SQLException: Invalid column name錯誤
因為iBatis自己有 AutoResultMap的cache,盡管你傳入的$tableName$不同,但是他總是
用第一個建立的AutoResultMap的cache去匹配以后的$tableName$當然有錯誤了
解決方法: 使用多個statment或者使用 remapResults="true" (為了效率他默認的是false)
以上由于效率問題,建議還是采用多個statement 映射到不同的model上面去,不建議生產系統也這么使用。