近日开发中用到ibatis在使用的过程中出现了AutoResultMap的错误
配置如下:
<select id="statistic" parameterClass="map" resultClass="java.util.HashMap">
select
<isNotNull property="category">
b.description as descriptionB,
</isNotNull>
<isNotNull property="serl">
c.description as descriptionC,
</isNotNull>
sum(1) as total
from
t_es_reginfo a
<isNotNull property="category">
<isEqual compareValue="city" property="category">
left join t_bs_$category$ b
on a.$category$=b.code
</isEqual>
<isNotEqual compareValue="city" property="category">
left join t_cd_$category$ b
on a.$category$=b.id
</isNotEqual>
</isNotNull>
<isNotNull property="serl">
<isEqual compareValue="city" property="serl">
left join t_bs_$serl$ c
on a.$serl$=c.code
</isEqual>
<isNotEqual compareValue="city" property="serl">
left join t_cd_$serl$ c
on a.$serl$=c.id
</isNotEqual>
</isNotNull>
where a.examid=#examid#
<isNotNull property="city">
and a.city=#city#
</isNotNull>
group by 1
<isNotNull property="category">
,a.$category$
</isNotNull>
<isNotNull property="serl">
,a.$serl$
</isNotNull>
order by -1
<isNotNull property="category">
,a.$category$
</isNotNull>
<isNotNull property="serl">
,a.$serl$
</isNotNull>
</select>
由于多次产生的列数可能会不一样,所以当每一次查出来是三列,第二次是两列的话就会报AutoResultMap的错( java.sql.SQLException: 列名无效),经查后发现有个remapResults的属性可以设置为true就可以了,原因如下:
在 【statement】, 【select】, 和【procedure】 标签中存在一个可选的属性【remapResults
】,默认值是false.如果每次查询的列不定的话,这个属性需要设置为true.
为了避免经常的对返回的结果进行内省,iBATIS
会记录上一次查询结果的元数据,
iBATIS
会在每次查询的时候内省查询结果来设置元数据,来保证返回恰当的结果。这个属性会造成一定的性能损失,所以要谨慎使用,只在你需要的时候使用--查询列发生变化
分享到:
相关推荐
ibatis的错误总结
ibatis学习 ibatis总结 ibatis ibatis ibatis
该问题对初学者很有提示性帮助,里面主要是个人对ibatis的##的认识
Ibatis的jar包和相关文档可以帮助学习Ibatis
ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料
ibatis demo,ibatis例子,ibatis示例
iBATIS 级联iBATIS 级联iBATIS 级联
ibatis的原码 ibatis源码 ibatis源码 ibatis源码
ibatis
自己平时学ibatis时候 遇到的问题 记下来了以及解决方法
如何解决动态数据表名,动态字段名情况下,由ibatis缓存select字段而引起的字段找不到的情况?以下是最简单的解决办法! 本文中内容真实可靠,保证用户很快掌握
Ibatis3,手册,Ibatis3手册,Ibatis3使用手册,Ibatis3参考手册
关于ibatis的一些好资料
从网上找了一点关于ibatis的学习资料,作为保存,有兴趣的朋友用的上的直接下了!
ibatis代码自动生成,ibatis代码自动生成,ibatis代码自动生成,ibatis代码自动生成
ibatis api,ibatis文档,ibatis说明文档
ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南
ibatis教程,ibatis帮助文档,ibatis学习入门
Spring与iBATIS的集成 iBATIS似乎已远离众说纷纭的OR框架之列,通常人们对非常流行的Hibernate情有独钟。但正如Spring A Developer's Notebook作者Bruce Tate 和Justin Gehtland所说的那样,与其他的OR框架相比...
简单的Ibatis入门例子,让你踏入Ibatis大门