MyBatis coma extra en consulta de actualización

En el archivo del mapeador xml de Mybatis, intenté escribir una consulta de actualización para la tabla Usuario como se muestra a continuación. Cada uno de los parámetros de entrada podría ser nulo y solo actualizo cuando no es nulo. No sabe qué condición 'if' podría fallar y cuál podría ser la última, por lo tanto, se debe agregar una coma en cada declaración.

El problema es que el extra ',' causa una excepción de consulta. Parece que Mybatis no ignora las comas adicionales.

Mi solución alternativa es poner "id = # {id}" al final, lo que solucionó el problema pero es redundante.

¿Cuál es la solución real?

El 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>

PD: El entorno que estoy usando es: Java Spring + MyBatis + MySQL.