Моя конфигурация БД в Spring Boot выполняется с использованием файла yaml:
# Common
spring:
jpa:
properties:
hibernate:
show_sql: true
use_sql_comments: truecat
format_sql: false
ddl-auto: validate
synonyms: true
connection:
includeSynonyms: true
# CONNECTION_PROPERTY_INCLUDE_SYNONYMS_DEFAULT: 'true'
database: ORACLE
datasource:
tomcat:
max-active: 10
max-idle: 10
# template only
---
spring:
profiles: dev
datasource:
url: jdbc:oracle:thin:@//localhost:1521/DEV
username: DEV
password: ...
Изначально я сталкивался с
Проверка схемы: отсутствует таблица
Итак, я добавил hibernate.synonyms=true
, теперь я получаю
Проверка схемы: отсутствует столбец
Чтобы решить, что мне нужно изменить соединение следующим образом https://gist.github.com/uggds/c3f0fa71037bc5177f60
Могу ли я сделать это в конфигурации?
То, что я пробовал и не работало
hibernate.connection.CONNECTION_PROPERTY_INCLUDE_SYNONYMS_DEFAULT: true
hibernate.connection.includeSynonyms: true
Похожие: DatabaseMetaData.getColumns, возвращающая пустой ResultSet для синонимов
Я пытался за это погуглить, но ничего не нашел ...
edit:
Дополнительный тест, основанный на ответе М. Дейна:
Я твердо верю, что
spring:
jpa:
properties:
hibernate.synonyms: true
и
spring:
jpa:
properties:
hibernate:
synonyms: true
одинаковы, по крайней мере, он имел тот же эффект, когда я использовал один или другой (оба результата Schema-validation: missing column
я добавил
datasource:
tomcat:
max-active: 10
max-idle: 10
connection-properties:
includeSynonyms: true
, но я получаю ту же ошибку
Проверка схемы: миссин столбец g
Когда я полностью удалил
spring:
jpa:
properties:
hibernate:
synonyms: true
Я получаю
Проверка схемы: отсутствует таблица
edit 2:
Попытка настройки свойств в пуле соединений hikari
spring:
jpa:
properties:
hibernate:
show_sql: true
use_sql_comments: true
format_sql: false
ddl-auto: validate
synonyms: true
database: ORACLE
datasource:
hikari:
connection-properties:
includeSynonyms: true
Я все еще получаю:
отсутствует столбец [zone_definitionpk_id]
Просто для проверки, когда я заменяю синоним на view, все в порядке. Также, когда я отключаю проверку, это нормально. Я имею в виду, что функционал работает.
edit 3
Позаботьтесь о connection-properties
против datasource-properties
, и с синонимами проверка длится дольше (по крайней мере для меня) .