MyBatis лишняя запятая в запросе на обновление
В файле сопоставления Mybatis xml я попытался написать запрос на обновление таблицы User, как показано ниже. Каждый из входных параметров может быть нулевым, и я обновляю его, только если он не нулевой. Вы не знаете, какое условие «если» может провалиться, а какое может быть последним, поэтому запятую нужно добавлять в каждое утверждение.
Проблема в том, что дополнительный ',' вызывает исключение запроса. Кажется, Mybatis не игнорирует лишнюю запятую.
Мой обходной путь должен поставить "id = # {id}" в конце, который решил проблему, но это избыточно.
Какое реальное решение?
Код:
<update id="update" parameterType="User">
UPDATE user SET
<if test="username != null">
username = #{username},
</if>
<if test="password != null">
password = #{password},
</if>
<if test="email != null">
email = #{email},
</if>
id= #{id} // this is redundant
WHERE id = #{id}
</update>
PS: среда, которую я использую: Java Spring + MyBatis + MySQL.