diff --git a/pom.xml b/pom.xml index 4016f901e1..f5f155a8eb 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ org.springframework.data spring-data-jdbc - 1.1.0.BUILD-SNAPSHOT + 1.1.0.DATAJDBC-262-SNAPSHOT Spring Data JDBC Spring Data module for JDBC repositories. diff --git a/src/main/java/org/springframework/data/jdbc/core/SqlGenerator.java b/src/main/java/org/springframework/data/jdbc/core/SqlGenerator.java index 83ce833e38..eaa5b947fd 100644 --- a/src/main/java/org/springframework/data/jdbc/core/SqlGenerator.java +++ b/src/main/java/org/springframework/data/jdbc/core/SqlGenerator.java @@ -273,8 +273,9 @@ private String createUpdateSql() { 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()); diff --git a/src/test/java/org/springframework/data/jdbc/core/SqlGeneratorUnitTests.java b/src/test/java/org/springframework/data/jdbc/core/SqlGeneratorUnitTests.java index 984e195aca..e571fba25f 100644 --- a/src/test/java/org/springframework/data/jdbc/core/SqlGeneratorUnitTests.java +++ b/src/test/java/org/springframework/data/jdbc/core/SqlGeneratorUnitTests.java @@ -186,6 +186,17 @@ public void getInsertForEmptyColumnList() { assertThat(insert).endsWith("()"); } + @Test // DATAJDBC-262 + public void update() { + + assertThat(sqlGenerator.getUpdate()).containsSequence( // + "UPDATE", // + "dummy_entity", // + "SET", // + "WHERE", // + "x_id = :x_id"); + } + private PersistentPropertyPath getPath(String path, Class base) { return PersistentPropertyPathTestUtils.getPath(context, path, base); }