当前位置: 代码迷 >> java >> 动态更新查询mybatis映射器
  详细解决方案

动态更新查询mybatis映射器

热度:82   发布时间:2023-07-16 17:30:35.0

我正在尝试创建一个mybatis通用更新方法。

我有一项具有此功能的服务:

Map<String, Object> map = convertObjectToMapforUpdate(entity, UPDATE);
mapper.update(tableName, map, identifier);

其中String是参数属性,Object是值。

和这样的接口:

void update(@Param("tableName") String tableName, @Param("map") Map<String, Object> map, @Param("identifier") long identifier);

我正在尝试使用映射器xml文件使用mybatis定义通用更新,如下所示:

<update id="update" parameterType="java.util.HashMap">
    UPDATE ${tableName}
    SET <foreach item="key" collection="map" index="index" separator=", ">
            ${key} = #{key}
        </foreach>
    WHERE identifier = #{identifier}
</update>

我尝试了很多选择,但没有一个起作用。 我尝试使用列表而不是HashMap,尝试使用特定的Object作为parameterType,但是它们中的任何一个都起作用。

有人知道该怎么做吗?

非常感谢您的宝贵时间 :)

谢谢罗马。 这很有帮助。 很抱歉重复这个问题,因为我浪费了3天的时间来寻找解决方案,但没有发现任何问题。 请将此问题标记为重复引用罗马的链接。 谢谢

  相关解决方案