Ibatis 在什么情况需要使用remapResults属性
展开全部
<select id="xxxxxxxxxxx" parameterClass="map" resultMap="baseResultMap" remapResults="true">
SELECT $field$
FROM dual
WHERE xxxxx = xx
</select>
像这种,select后面是动态的,需要设置remapResults为ture
为啥呢?因为ibatis默认的会缓存rs中的meta信息,如果你第一次查询的列和第二次查询的列不一样的话,那么第二次ibatis还会以第一次查询的列为key从rs里面获取数据,但是第二次列已经变化了,所以第二次取数据的时候,RS里面已经没有了你第一次的那个列了,所以会出错。
SELECT $field$
FROM dual
WHERE xxxxx = xx
</select>
像这种,select后面是动态的,需要设置remapResults为ture
为啥呢?因为ibatis默认的会缓存rs中的meta信息,如果你第一次查询的列和第二次查询的列不一样的话,那么第二次ibatis还会以第一次查询的列为key从rs里面获取数据,但是第二次列已经变化了,所以第二次取数据的时候,RS里面已经没有了你第一次的那个列了,所以会出错。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询