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 returning an empty ResultSet for synonyms
我尝试用Google搜索,但什么也没找到...
编辑:
基于Deinum先生的答案的附加测试:
我坚信,
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
但是我遇到同样的错误
模式验证:缺少列
当我完全移除时
spring: jpa: properties: hibernate: synonyms: true
我要
模式验证:缺少表
编辑2:
尝试在hikari连接池上设置属性
春天:jpa:特性:休眠:show_sql:是use_sql_comments:是format_sql:否ddl-auto:验证同义词:true数据库:ORACLE数据源:k:连接属性:includeSynonyms:true
我仍然得到:
缺少列[zone_definitionpk_id]
只是测试,当我用view替换同义词时就可以了。另外,当我关闭验证时也可以。我的意思是该功能有效。
我在Spring Boot中的数据库配置是使用yaml文件完成的:#通用spring:jpa:属性:hibernate:show_sql:true use_sql_comments:truecat format_sql:false ...
设置hibernate.connection
属性是没有用的。您应该在数据源上设置它们。要设置其他非默认属性,可以使用connection-properties
上的spring.datasource.tomcat
属性。