Как добавить кавычки к псевдонимам в сгенерированном SQL через Hibernate? - PullRequest
0 голосов
/ 21 сентября 2018

Из-за базы данных (снежинки), которую я использую, я должен заключать в кавычки псевдонимы, сгенерированные hibernate.

Hibernate генерирует, как показано ниже для примера

select emp0_.emp_id as emp_id1_0_0_, emp0_.name as name_2_0_0_ from test.employee emp0_ where emp0_.emp_id=? 

Но я хочу процитировать псевдоним / идентификаторы как

select emp0_.emp_id as "emp_id1_0_0_", emp0_.name as "name_2_0_0_" from test.employee emp0_ where emp0_.emp_id=? 

1 Ответ

0 голосов
/ 24 января 2019

Это не ответ на ваш фактический вопрос о цитировании псевдонимов, но это может быть решением проблемы JPA + Snowflake, поскольку у нас была та же проблема и мы искали то же решение.

Если вы используете библиотеку Snowflake JDBC , добавление &CLIENT_RESULT_COLUMN_CASE_INSENSITIVE=true в конец строки подключения Snowflake позволит библиотеке работать с JPA / Hibernate.Убедитесь, что вы используете Latest Snowflake JDBC из-за некоторых ошибок в более ранних версиях, приводящих к изменению строки подключения с jdbc:snowflake:// на https:// во время выполнения.

Установка этого параметраСвойство подключения вызовет этот columnName.toUpperCase() код, и теперь будет работать метод getColumnIndex().

Дополнительная информация выходит за рамки вашего вопроса: когда мы устанавливаем наш весенний application.propertiesподобно следующему, мы смогли использовать PagingAndSortingRepository без использования нашего собственного DataSource или каких-либо дополнительных классов конфигурации.

spring.jpa.properties.hibernate.dialect=[empty class extending org.hibernate.dialect.Dialect]
spring.datasource.driverClassName=net.snowflake.client.jdbc.SnowflakeDriver
spring.datasource.username=${snowflake.user}
spring.datasource.password=${snowflake.password}
spring.datasource.url=jdbc:snowflake://${snowflake.account}.snowflakecomputing.com/?warehouse=${snowflake.warehouse}&db=${snowflake.databaseName}&schema=${snowflake.schema}&CLIENT_RESULT_COLUMN_CASE_INSENSITIVE=true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...