ibatis动态字段查询

想要动态的获取所需要的字段,想来想去没有想到好的方法,只有下面一个不成熟的想法,提笔记之,以备改进。

代码极其简单,一看即明白。有一点要注意的就是remapResults="true"一定要设置(缓存是把双刃剑)

entity.getFeild_map().put("partner_id", "partner_id");
entity.getFeild_map().put("partner_name", "partner_name");
if(null != s){
entity.getFeild_map().put("state", "state");
}

List<TbPtyVsopPart> entityList = ibatisTemplate.
queryForList(CommonLatnCode.static_latn_code, "TB_PTY_VSOP_PART.testDynamicSql", entity);

下面为配置文件

<select id="testDynamicSql" resultClass="tbPtyVsopPart" parameterClass="tbPtyVsopPart" remapResults="true">
<![CDATA[ select * from ( select t_.*, rownum rn_ from ( ]]>
select
<dynamic prepend=" ">
<isNotNull prepend="," property="feild_map.partner_id">PARTNER_ID</isNotNull>
<isNotNull prepend="," property="feild_map.partner_code">PARTNER_CODE</isNotNull>
<isNotNull prepend="," property="feild_map.partner_type">PARTNER_TYPE</isNotNull>
<isNotNull prepend="," property="feild_map.partner_desc">PARTNER_DESC</isNotNull>
<isNotNull prepend="," property="feild_map.state">STATE</isNotNull>
<isNotNull prepend="," property="feild_map.state_date">STATE_DATE</isNotNull>
<isNotNull prepend="," property="feild_map.partner_level">PARTNER_LEVEL</isNotNull>
<isNotNull prepend="," property="feild_map.partner_name">PARTNER_NAME</isNotNull>
</dynamic>
from PARTNER t where 1 = 1
<include refid="sf-tbPtyVsopPart" />
<!-- order by ID asc -->
<![CDATA[ ) t_ where rownum <= (#row.first# + #row.count#)) where rn_ >= (#row.first# + 1) ]]>
</select>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值