From 8434f6e3dd47bdc9d55e13799254a585a3ad2f94 Mon Sep 17 00:00:00 2001 From: Yoichi Imai Date: Tue, 18 Sep 2018 12:59:56 +0900 Subject: [PATCH] DATAJDBC-264 - Fix insert statement for empty parameter list. When an entity consists only of it's id column, the value list contained a single `:`. This commit fixes this. Original pull request: #88. --- .../java/org/springframework/data/jdbc/core/SqlGenerator.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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 dedde1439..20a5a3ba0 100644 --- a/src/main/java/org/springframework/data/jdbc/core/SqlGenerator.java +++ b/src/main/java/org/springframework/data/jdbc/core/SqlGenerator.java @@ -260,7 +260,9 @@ class SqlGenerator { columnNamesForInsert.addAll(additionalColumns); String tableColumns = String.join(", ", columnNamesForInsert); - String parameterNames = columnNamesForInsert.stream().collect(Collectors.joining(", :", ":", "")); + String parameterNames = columnNamesForInsert.stream()// + .map(n -> String.format(":%s", n))// + .collect(Collectors.joining(", ")); return String.format(insertTemplate, entity.getTableName(), tableColumns, parameterNames); }