From 9b12265063ab5865e4769e1f6c78cc4df9ecfcad Mon Sep 17 00:00:00 2001 From: Jens Schauder Date: Fri, 21 Sep 2018 09:53:37 +0200 Subject: [PATCH 1/2] DATAJDBC-266 - Prepare branch. --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 4016f901e1..e412d6f301 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-266-SNAPSHOT Spring Data JDBC Spring Data module for JDBC repositories. From ff3f32858e1e6c10971c6d4d0f2e4007215f53ba Mon Sep 17 00:00:00 2001 From: Jens Schauder Date: Fri, 21 Sep 2018 13:55:43 +0200 Subject: [PATCH 2/2] DATAJDBC-266 - Update statements no longer set the id column. --- .../springframework/data/jdbc/core/SqlGenerator.java | 5 +++-- .../data/jdbc/core/SqlGeneratorUnitTests.java | 11 +++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) 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..dae997dff5 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-266 + 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); }