今天遇到一个问题,以前数据库可以执行成功的一个 sql 突然无法执行。sql 如下:
<update id="batchUpdate" parameterType="java.util.List">
<foreach collection="devRelDOList" item="devRelDO" separator=";" open="" close="" >
UPDATE
dev_rel
<set>
gmt_modified=now(),
pro_id = #{devRelDO.proId},
dev_id = #{devRelDO.devId},
group_id = #{devRelDO.groupId},
own_type = #{devRelDO.ownType}
</set>
<where>
id = #{devRelDO.id}
</where>
</foreach>
</update>
开始以为是 sql 的问题,后来排查发现数数据库配置的问题。为了一次向数据库提交执行多条 sql 就要加这个参数 allowMultiQueries=true.
上面的 update 语句会产生多条更新的 sql.