ibatis同一个方法不能查询查询两个表时报错现象

来源:互联网 发布:华为云计算部门怎么样 编辑:程序博客网 时间:2024/06/15 03:53

适用于确认列名在在相应的数据表、domain中存在

<select id="select" resultClass="java.util.HashMap"  >
                select * from $tableName$ where id=#id#
</select>

该查询结果映射到HashMap中,第一次使用这个语句是没有问题,但是当使用这个语句查询别的表时,报错为“列名无效”,分析之后原因为ibatis对上个表的结构进行了映射缓存,从结果集到HashMap的映射时按照缓存中表字段进行装载。
使用remapResults这个属性,可以重新映射结果集
<select id="select" resultClass="java.util.HashMap" remapResults="true"   >
                select * from $tableName$ where id=#id#
</select>