Skip to content

Commit 3d67ad0

Browse files
schaudergregturn
authored andcommitted
DATAJDBC-262 - Update statements no longer set the id column.
1 parent 0816f41 commit 3d67ad0

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

src/main/java/org/springframework/data/jdbc/core/SqlGenerator.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -284,8 +284,9 @@ private String createUpdateSql() {
284284

285285
String updateTemplate = "UPDATE %s SET %s WHERE %s = :%s";
286286

287-
String setClause = columnNames.stream()//
288-
.map(n -> String.format("%s = :%s", n, n))//
287+
String setClause = columnNames.stream() //
288+
.filter(s -> !s.equals(entity.getIdColumn())) //
289+
.map(n -> String.format("%s = :%s", n, n)) //
289290
.collect(Collectors.joining(", "));
290291

291292
return String.format(updateTemplate, entity.getTableName(), setClause, entity.getIdColumn(), entity.getIdColumn());

src/test/java/org/springframework/data/jdbc/core/SqlGeneratorUnitTests.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,17 @@ public void joinForOneToOneWithoutIdIncludesTheBackReferenceOfTheOuterJoin() {
199199
"FROM");
200200
}
201201

202+
@Test // DATAJDBC-262
203+
public void update() {
204+
205+
assertThat(sqlGenerator.getUpdate()).containsSequence( //
206+
"UPDATE", //
207+
"dummy_entity", //
208+
"SET", //
209+
"WHERE", //
210+
"x_id = :x_id");
211+
}
212+
202213
private PersistentPropertyPath<RelationalPersistentProperty> getPath(String path, Class<?> base) {
203214
return PersistentPropertyPathTestUtils.getPath(context, path, base);
204215
}

0 commit comments

Comments
 (0)