Browse Source

DATAJDBC-262 - Update statements no longer set the id column.

pull/94/merge
Jens Schauder 7 years ago committed by Greg Turnquist
parent
commit
3d67ad08ed
No known key found for this signature in database
GPG Key ID: CB2FA4D512B5C413
  1. 5
      src/main/java/org/springframework/data/jdbc/core/SqlGenerator.java
  2. 11
      src/test/java/org/springframework/data/jdbc/core/SqlGeneratorUnitTests.java

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

@ -284,8 +284,9 @@ class SqlGenerator { @@ -284,8 +284,9 @@ class SqlGenerator {
String updateTemplate = "UPDATE %s SET %s WHERE %s = :%s";
String setClause = columnNames.stream()//
.map(n -> String.format("%s = :%s", n, n))//
String setClause = columnNames.stream() //
.filter(s -> !s.equals(entity.getIdColumn())) //
.map(n -> String.format("%s = :%s", n, n)) //
.collect(Collectors.joining(", "));
return String.format(updateTemplate, entity.getTableName(), setClause, entity.getIdColumn(), entity.getIdColumn());

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

@ -199,6 +199,17 @@ public class SqlGeneratorUnitTests { @@ -199,6 +199,17 @@ public class SqlGeneratorUnitTests {
"FROM");
}
@Test // DATAJDBC-262
public void update() {
assertThat(sqlGenerator.getUpdate()).containsSequence( //
"UPDATE", //
"dummy_entity", //
"SET", //
"WHERE", //
"x_id = :x_id");
}
private PersistentPropertyPath<RelationalPersistentProperty> getPath(String path, Class<?> base) {
return PersistentPropertyPathTestUtils.getPath(context, path, base);
}

Loading…
Cancel
Save