Hibernate + Spring Boot 2:不检查默认架构

时间:2019-04-24 07:05:52

标签: java spring hibernate spring-boot

我正在使用Hibernate运行Spring Boot应用程序。我的“ application.properties”中具有以下属性,以加载Mysql数据源并设置Hibernate属性。但是,当我使用以下属性运行集成测试时,Hibernate倾向于将“ information_schema”检查为默认模式,而不是“ knowledgedb”模式,它会失败,并出现以下异常。

Mysql连接器版本:8.0.12

Spring Boot版本:2.1.3.RELEASE

例外:

org.dbunit.dataset.DataSetException: java.sql.SQLSyntaxErrorException: Unknown table 'book_version' in information_schema

属性:

# Spring Datasource properties
spring.datasource.url=jdbc:mysql://localhost:3306/knowledgedb?createDatabaseIfNotExist=true&zeroDateTimeBehavior=CONVERT_TO_NULL&characterEncoding=utf8&characterSetResults=utf8&useTimezone=true&useLegacyDatetimeCode=false&serverTimezone=UTC&useSSL=false
spring.datasource.username=XX
spring.datasource.password=XX
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.hikari.maximum-pool-size=10

# Hibernate specific properties
spring.jpa.hibernate.naming.physical-strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy
spring.jpa.show-sql=false
spring.jpa.hibernate.ddl-auto=validate
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect
spring.jpa.properties.hibernate.hbm2ddl.auto=validate
spring.jpa.properties.hibernate.ejb.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy
spring.jpa.properties.hibernate.show_sql=false
spring.jpa.properties.hibernate.format_sql=false
spring.jpa.properties.hibernate.use_sql_comments=false
spring.jpa.properties.hibernate.id.new_generator_mappings=false
spring.jpa.properties.hibernate.default_schema=knowledgedb

1 个答案:

答案 0 :(得分:0)

@ Abhi.G您是否已将模式/数据库创建到db中?如果没有,请手动创建它,然后检查它是否有效!通常,如果您编写了正确的属性文件,那么它将创建数据库本身。 请在文件中进行此更改,然后重试: spring.jpa.hibernate.ddl-auto =更新