ibatis2 中select中的动态查询

 

SELECT  
            LOGDATE   logdate,  
            <dynamic>  
                <isEqual property="isMember" compareValue="true" close=",">  
                           NAME  name  
                </isEqual>  
            </dynamic>  
                         AGE    age  
        FROM t  

 如题,在select中使用动态查询,isMember是Boolean类型的,结果就是isMember为true的时候还是选不到name这一列.

 

经过排查得知,生成的sql是正确的,但是resultMap的head是没有NAME  name这一列的.

ibatis的sql和resultMap是分开的,先根据sqlMap生成一个resultMap,然后把查询的结果再映射到resultMap中

虽然查询出来了结果,但是没有地方放数据.

具体为什么生成的resultMap没有那一列,带确认...

 

查出原因了,确认结果:

ibatis会缓存了第一次查过之后使用的resultMap,第二次查询的时候便不会考虑其他字段(即上面的NAME列).
改为<select id="***" parameterClass="***" resultClass="***" remapResults="true">
意思就是每次都会重新生成新的resultMap.

 

参考链接:http://www.iteye.com/topic/89424

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值