Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HashMap中的MyBatis参数_Java_Mysql_Mybatis_Ibatis - Fatal编程技术网

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>

如果您有纯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}}

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