修改数据的时候,有两个字段的数据一直没变,debug跟进,发现在进入sql前都是有值的。
开始排查是不是这两个字段的名称打错了,检查发现没问题。最后想起来之前 Date类型的 updateTime 字段一开始加上
<if test=" null != item.updateTime and '' != item.updateTime">
update_time=#{item.updateTime}
</if>
判断时,是报错了(Date类型 判断和 '' 是否相等时报错)。
<if test=" null != item.updateTime">
update_time=#{item.updateTime}
</if>
会不会是因为这两个字段是Integer类型,判断的时候不会报错?
检查发现,这两个Integer类型的字段 也加了 '' != *** 的判断, 去掉之后发现这两个值修改成功。
<!-- 批量更新 -->
<update id="updateBatchById" parameterType="list">
<foreach collection="list" item="item" index="list" separator=";">
UPDATE fdtfdfain_dfdd
<set>
<if te