Vírgula extra MyBatis na consulta de atualização

No arquivo mapeador Mybatis xml, tentei escrever uma consulta de atualização para a tabela Usuário, como mostrado abaixo. Cada parâmetro de entrada pode ser nulo e eu atualizo apenas quando não é nulo. Você não sabe qual condição 'se' poderia passar e qual poderia ser a última, portanto, vírgula deve ser adicionada em cada instrução.

O problema é que o extra ',' causa uma exceção de consulta. Parece que Mybatis não ignora vírgula extra.

Minha solução alternativa é colocar "id = # {id}" no final, corrigindo o problema, mas é redundante.

Qual é a solução real?

O código:

<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: O ambiente que estou usando é: Java Spring + MyBatis + MySQL.

questionAnswers(1)

yourAnswerToTheQuestion