首页 > 解决方案 > Spring Boot 2.2.5 - yaml 中的 spring.datasource.data 属性

问题描述

最近我们升级到spring boot 2.2.5 我们曾经使用属性spring.datasource.data在数据库“创建”或“更新”后加载SQL。

我们的 Yaml 看起来像这样:

--
spring:
    profiles: default
    application:
        name:"EMBEDDED"
    datasource:
        url: "jdbc:postgresql://localhost/somedb"
        driverClassName: org.postgresql.Driver
        username: postgres
        password: "some password"
        data: "classpath*:data.sql"
   jpa:      
      database: POSTGRESQL
      show-sql: false
      hibernate.ddl-auto: update

重要的部分是“spring.datasource.data”属性,我们用来定义更新数据库后休眠将运行的 SQL 文件的名称。

请注意,我们使用 hibernate.ddl-auto 来实现这一点。

现在我们已经升级了 Spring Boot,我们也开始使用 2 个数据源,如下所示:

spring:
    profiles: dev
    application:
        name:"EMBEDDED-DEV"   
    datasource:
        src1:
            jdbcUrl: "jdbc:sqlserver://localhost;databaseName=DB1"
            username: user
            password: password
            initializationFailTimeout: 0
            data: "classpath*:data.sql"
        src2:
            jdbcUrl: "jdbc:sqlserver://localhost;databaseName=db2"
            username: user            
            password: password
            initializationFailTimeout: 0
            data: "classpath*:data.sql"        
    jpa:      
        database-platform: org.hibernate.dialect.SQLServer2012Dialect
        show-sql: false
        hibernate.format_sql: true
        hibernate.ddl-auto: update        

如您所见,我们现在有 2 个数据源,但是当我尝试像以前那样添加“数据”属性时,我得到了这个异常:

java.lang.RuntimeException: Property data does not exist on target class com.zaxxer.hikari.HikariConfig

我现在应该把数据属性放在哪里才能让它工作?

标签: javahibernatespring-bootdatasourcehikaricp

解决方案


推荐阅读