Java HashMap中的MyBatis参数

Java HashMap中的MyBatis参数,java,mysql,mybatis,ibatis,Java,Mysql,Mybatis,Ibatis,在mapper界面中,我有: ArrayList<Item> select(@Param("filterId")int filterId, @Param("filterData")HashMap<String,Object> filterData); 在mapper xml中,我有: <select id="select" parameterType="map" resultMap="RM"> SELECT ... FRO

在mapper界面中,我有:

ArrayList<Item> select(@Param("filterId")int filterId, @Param("filterData")HashMap<String,Object> filterData);
在mapper 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>
我找到了答案:

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

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

<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>

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

<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}}

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

并且什么是不期望的?@Konstantin V.Salikhov它返回空集。为什么您的属性被命名为sesultMap?你试过调试吗?查询时为id分配了什么参数值?@Konstantin V.Salikhov sesultMap-我在提问时出错。什么是不期望的?@Konstantin V.Salikhov返回空集。为什么您的属性被命名为sesultMap?你试过调试吗?在查询时为id分配了什么参数值?@Konstantin V.Salikhov sesultMap-我在提问时犯了错误。filterData是什么?这是地图的钥匙吗?filterData.id是映射值的id属性?filterData是在注释@ParamfilterData HashMap filterData中指定的,id是它的键之一。什么是filterData?这是地图的钥匙吗?而filterData.id是映射值的id属性?filterData是在注释@ParamfilterData HashMap filterData中指定的,id是其键之一。