繁体   English   中英

来自 HashMap 的 MyBatis 参数

[英]MyBatis parameter from HashMap

在映射器界面中,我有:

ArrayList<Item> select(@Param("filterId")int filterId, @Param("filterData")HashMap<String,Object> filterData);

在映射器 xml 中,我有:

 <select id="select" parameterType="map" resultMap="RM">
        SELECT ... 
        FROM ....
        WHERE id=#{filterData["id"]}
    </select>

没有错误,但结果不符合预期(它返回空集,但我知道存在具有此类 ID 的项目)。 #{filterData["id"]} 似乎不起作用。 我的错误在哪里?

我找到了答案:

 <select id="select" parameterType="map" resultMap="RM">
        SELECT ... 
        FROM ....
        WHERE id=#{filterData.id}
    </select>

如果您有纯 java 类,您可以将parameterType映射为查询的输入,并像这样作为不同的自定义pojo class返回。

<select id="getCustomMember" parameterType="com.custom.member" resultMap="custDocMap">
        select
        customer_id, cust_start_dt, cust_type, src_sys_doc_id, 
        legal_backer_id, eenv_create_dt
        from
        web_data..wd_edoc
        where
        eenv_create_dt = #{member.date}
    </select>

如果您的 id 是从列表中迭代的动态 ID,您可以使用 #{filterData.${id}}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM