iBatis动态生成列在执行查询时报列名无效

iBatis会自动缓存每条查询语句的列名映射,所有如果你动态生成列名的话就有可能造成查询列名无效的问题。
下面以G4平台为例简单说明一下:
同一条SQL语句先被queryforpage()调用,SQL语句被拦截套上了分页语法。此时rn列明被缓存。之后你又使用queryforlist()方法执行查询。次数SQL语句不被拦截拼分页语法,此时便报出rn列名无效。解决办法是在SQL语句上加一个属性(remapResults )配置让每次执行都重新映射列名。注:仅在可能被queryforpage()和queryforlist()都调用的SQL语句上加此属性。(以牺牲性能为代价,损耗很小很小)。如下所示:

1 < select id ="sql_Sel_Mp_Design" parameterClass ="map" resultClass ="dto" remapResults ="true" >
2 </ select >

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值