如何设置连接属性(包括同义词)

问题描述 投票:0回答:1

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 ...

oracle hibernate spring-boot
1个回答
0
投票

设置hibernate.connection属性是没有用的。您应该在数据源上设置它们。要设置其他非默认属性,可以使用connection-properties上的spring.datasource.tomcat属性。

© www.soinside.com 2019 - 2024. All rights reserved.