修改数据的时候,有两个字段的数据一直没变,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 test=" null != item.originalStatus ">original_status=#{item.originalStatus},</if><if test=" null != item.brandStatus ">brand_status=#{item.brandStatus},</if><if test=" null != item.updateTime ">update_time=#{item.updateTime}</if></set>WHERE id=#{item.id}</foreach></update>