Wenn dem Framework nicht mitgeteilt wird, welche Spalte der Schlüssel ist, gibt es alle Spalten der Tabelle als Schlüssel zurück.
Sie können es informieren, indem Sie wie folgt einen neuen Parameter an die Update-Methode übergeben:
template.update(query, data, keyHolder, new String[] { "id" });
Siehe NamedParameterJdbcTemplate. update(sql, paramSource, generateKeyHolder, keyColumnNames)