当前位置: 首页 > 知识库问答 >
问题:

Hibernate Spring boot 2:不检查默认架构

璩涛
2023-03-14

我正在运行与HibernateSpring启动应用程序。我有以下属性在我的"application.properties"加载MySQL数据源和设置Hibernate属性。但是当我使用以下属性运行集成测试时,Hibernate倾向于将“information_schema”作为默认模式,而不是“知识数据库”模式,并且它会失败,出现以下异常。

Mysql连接器版本:8.0。12

Spring Boot版本:2.1.3。发布

例外情况:

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个答案

南门正业
2023-03-14

@Abhi。g您是否已经在数据库中创建了模式/数据库??如果没有,那么手动创建它,然后检查它是否工作!通常,如果您编写了正确的属性文件,那么它会自己创建数据库。请在您的文件中执行此更改,然后重试:spring.jpa.hibernate.ddl

 类似资料:
  • 问题内容: 有没有一种方法可以设置查询的模式,以便在其余查询中我可以仅按表名引用表,而无需在表名前添加表名? 例如,我想做这样的事情: 与此相反: 问题答案: 一个快速的谷歌把我指向了这个页面。它说明从sql server 2005开始,您可以使用ALTER USER语句设置用户的默认架构。不幸的是,这意味着您将对其进行永久更改,因此,如果需要在模式之间进行切换,则每次执行存储过程或一批语句时都需

  • 本文向大家介绍Android中检查、设置默认程序详解,包括了Android中检查、设置默认程序详解的使用技巧和注意事项,需要的朋友参考一下 Android作为一个伟大的系统,自然提供了设置默认打开程序的实现.在这篇文章中,我会介绍如何在Android系统中设置默认的程序. 在设置默认程序之前,无非有两种情况,一种是已经有默认的程序,另一种则是没有任何默认程序. 检测是否有默认的程序 检查是必须的,

  • 火狐已经开始相信我的默认拼写检查语言应该是西班牙语。我的全球偏好选择了英文: 优惠─ 在逐页的基础上,我可以通过以下方式重置拼写检查语言: 右击- 但是,对于新打开的页面或新会话,默认拼写检查语言返回西班牙语。我在这里找到了一个变通方法:https://support.mozilla.org/en-US/questions/975459#answer-494574 这表明安装一个新的字典会改变默认

  • 问题内容: 然后,我想更改用户的默认架构(用户为) 我这样做:( 查询成功返回,但没有结果)。 当我尝试给出错误 虽然效果很好。 尝试为用户更改默认架构有什么问题? 问题答案: 我认为您需要重新登录。随着 你改变 运行时配置变量的会话默认值 同样来自 手册: 特定于角色的变量设置仅在登录时生效; 但是不要将更改应用于当前会话。如果要立即更改,请使用: 它将在会话级别更改路径

  • 我有一个调用外部API的Java程序(在下面的代码中),有时我想避免调用此API,而是返回预先构造的响应(由生成)。 所以,我在大多数方法中都复制了这种构造: 有哪些选项可以避免在任何地方重复这个try/catch块?重要的是,如果抛出异常或返回null,则必须调用。

  • 问题内容: 我正在使用weblogic和oracle对Web应用程序进行编程。数据源是通过JNDI配置的,具有受限制的数据库用户,该用户可以DML到表中,但不能DDL。您可能会猜到,该用户不是这些表的所有者,但已授予该用户访问权限。 假设他是GUEST_USER 该应用程序正在使用JPA + EclipseLink,并且已经定义了许多实体。我不想在每个实体类中都写入要更改架构的属性。我已经尝试过使