天天看點

ibatis動态生成列時的列名無效

iBatis會自動緩存每條查詢語句的列名映射,所有如果你動态生成列名的話就有可能造成查詢列名無效的問題

同一條SQL語句先被queryforpage()調用,SQL語句被攔截套上了分頁文法。此時rn列名被緩存。之後你又使用queryforlist()方法執行查詢。此時SQL語句不被攔截拼分頁文法,此時便報出rn列名無效。解決辦法是在SQL語句上加一個屬性(remapResults)配置讓每次執行都重新映射列名。注:僅在可能被queryforpage()和queryforlist()都調用的SQL語句上加此屬性。(以犧牲性能為代價,損耗很小很小)。如下所示:

<selectid="sql_Sel_Mp_Design"parameterClass="map"resultClass="dto"remapResults="true">

</select>

本文轉自 winters1224 51CTO部落格,原文連結:http://blog.51cto.com/winters1224/797836,如需轉載請自行聯系原作者