mirror of
https://github.com/spring-projects/spring-framework
synced 2026-06-08 17:33:33 +00:00
7dc0653f38
Prior to this commit and the previous commit, SimpleJdbcInsert did not provide built-in support for "quoted identifiers". Consequently, if any column names conflicted with keywords or functions from the underlying database, you had to manually quote the column names when specifying them via `usingColumns(...)`, and there was unfortunately no way to quote schema and table names. The previous commit provided rudimentary support for quoted SQL identifiers (schema, table, and column names) by querying java.sql.DatabaseMetaData.getIdentifierQuoteString() to determine the quote string. It also introduced `usingEscaping(boolean)` in `SimpleJdbcInsertOperations` to enable the feature. However, it incorrectly quoted the schema and table names together, and it did not take into account the fact that a quoted identifier should respect the casing (uppercase vs. lowercase) of the underlying database's metadata. This commit revises quoted identifier support in `SimpleJdbcInsert` by: - renaming `usingEscaping(boolean)` to `usingQuotedIdentifiers()` - quoting schema and table names separately - respecting the casing (uppercase vs. lowercase) of the underlying database's metadata when quoting identifiers - introducing integration tests against an in-memory H2 database See gh-13874 Closes gh-24013