ibatis动态生成列时的列名无效
2012-03-06 10:40
274 查看
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>
本文出自 “编程的摩羯男” 博客,请务必保留此出处http://winters1224.blog.51cto.com/3021203/797836
同一条SQL语句先被queryforpage()调用,SQL语句被拦截套上了分页语法。此时rn列名被缓存。之后你又使用queryforlist()方法执行查询。此时SQL语句不被拦截拼分页语法,此时便报出rn列名无效。解决办法是在SQL语句上加一个属性(remapResults)配置让每次执行都重新映射列名。注:仅在可能被queryforpage()和queryforlist()都调用的SQL语句上加此属性。(以牺牲性能为代价,损耗很小很小)。如下所示:
<selectid="sql_Sel_Mp_Design"parameterClass="map"resultClass="dto"remapResults="true">
</select>
本文出自 “编程的摩羯男” 博客,请务必保留此出处http://winters1224.blog.51cto.com/3021203/797836
相关文章推荐
- ibatis中动态查询返回字段返回用resultClass="java.util.HashMap" Java.sql.SQLException: 列名无效的问题
- angularJS动态生成的页面中,ng-click无效解决办法
- iBatis查询时报“列名无效”无列名的错误原因及解决方法
- jQuery1.9之后使用on()绑定 动态生成元素的 事件无效
- 动态生成的DOM做点击事件无效
- 【转】ibatis.net中的单个参数查询、多个参数查询和实体类查询以及动态SQL语句生成查询
- 动态生成DOM元素绑定click事件无效问题
- iBatis动态生成列在执行查询时报列名无效
- angularJS动态生成的页面中,ng-click无效解决办法
- 详解angularJS动态生成的页面中ng-click无效解决办法
- (总结)ibatis 动态传入表名和列名
- SQL 动态语句 列名无效
- 动态生成input绑定事件无效如:blur
- 动态生成控件以后控件绑定的事件无效的问题
- iBatis查询时报"列名无效"或"找不到栏位名称"无列名的错误原因及解决方法
- jQuery使用on()绑定动态生成元素的事件无效的问题
- Angular 动态生成html中 ng-click无效
- jQuery-动态生成的元素绑定无效
- ibatis java.sql.SQLException:列名无效
- javascript中动态生成div无效解决方法