From 37b144fb9d7beafa19122872162d6343ca053d99 Mon Sep 17 00:00:00 2001 From: Jens Schauder Date: Wed, 31 Aug 2022 15:38:28 +0200 Subject: [PATCH] Reenable quoting for SqlServerDialect. Quoting is important since it allows use of keywords as names. We do not change the letter casing. In a default setup the database does not care since it is case-insensitive. If configured to be case-sensitive it makes sense to pass on what ever letter casing there is, since you seem to care. Closes #1216 See #914 --- .../data/jdbc/core/convert/SqlGeneratorUnitTests.java | 2 +- .../data/relational/core/dialect/SqlServerDialect.java | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/core/convert/SqlGeneratorUnitTests.java b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/core/convert/SqlGeneratorUnitTests.java index 7ea24dfe..a18a3886 100644 --- a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/core/convert/SqlGeneratorUnitTests.java +++ b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/core/convert/SqlGeneratorUnitTests.java @@ -262,7 +262,7 @@ class SqlGeneratorUnitTests { String sql = sqlGenerator.getFindAll(Sort.by(new Sort.Order(Sort.Direction.ASC, "name", Sort.NullHandling.NULLS_LAST))); - assertThat(sql).endsWith("ORDER BY dummy_entity.x_name ASC"); + assertThat(sql).endsWith("ORDER BY \"dummy_entity\".\"x_name\" ASC"); } @Test // DATAJDBC-101 diff --git a/spring-data-relational/src/main/java/org/springframework/data/relational/core/dialect/SqlServerDialect.java b/spring-data-relational/src/main/java/org/springframework/data/relational/core/dialect/SqlServerDialect.java index 4115596f..834aa45d 100644 --- a/spring-data-relational/src/main/java/org/springframework/data/relational/core/dialect/SqlServerDialect.java +++ b/spring-data-relational/src/main/java/org/springframework/data/relational/core/dialect/SqlServerDialect.java @@ -44,6 +44,9 @@ public class SqlServerDialect extends AbstractDialect { } }; + private static final IdentifierProcessing IDENTIFIER_PROCESSING = IdentifierProcessing + .create(IdentifierProcessing.Quoting.ANSI, IdentifierProcessing.LetterCasing.AS_IS); + protected SqlServerDialect() {} @Override @@ -162,7 +165,7 @@ public class SqlServerDialect extends AbstractDialect { @Override public IdentifierProcessing getIdentifierProcessing() { - return IdentifierProcessing.NONE; + return IDENTIFIER_PROCESSING; } @Override