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

DataJpaTest不创建架构

赵飞语
2023-03-14

我有一个使用Spring Boot的中等规模项目,我正在尝试使用嵌入式H2创建我的第一个DataJpaTest,但我遇到了以下例外:

org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "drop table project.project.driver if exists" via JDBC Statemen
Caused by: org.h2.jdbc.JdbcSQLException: Schema "PROJECT" not found; SQL statement:

我已经尝试了这一点,并使用了一个模式。sql,还有这个和使用测试。测试/资源中的属性,以及其他答案。但什么都没用。我真的很困惑;这是我第一次在Spring Boot中遇到无法解决的问题。

我的实体类定义为:

@Entity
@Table(name = "table_name", schema = "project", catalog = "project")
@Lombok.Data
public class TableNameEntity { }

关于如何强制Hibernate在H2中创建模式的任何建议?

共有1个答案

左翰海
2023-03-14

您可以传递一个sql脚本,该脚本在h2的url中创建模式:

jdbc:h2:mem:somedb;DB_CLOSE_DELAY=-1;INIT=RUNSCRIPT FROM 'classpath:create_schema.sql'

和在create\u schema中。sql应该是这样的

CREATE SCHEMA IF NOT EXISTS project;
 类似资料:
  • 我的数据层中有几个实体存储在特定的模式中。例如: 我正在尝试设置H2嵌入式数据库,以便对我的数据层进行集成测试。我正在测试中使用DataJpaTest注释来自动配置H2嵌入式数据库。但是,表的创建失败,因为在DB初始化时未创建架构虚拟。 在测试用例中创建表之前,有没有关于如何创建模式的想法? 我尝试使用@Sql(statements=“CREATE SCHEMA IF NOT EXISTS DUM

  • 我已经创建了一个新的spring boot 1.4应用程序,希望使用@DataJpaTest进行一些测试,但不断收到以下错误消息 原因:组织。springframework。豆。工厂BeanCreationException:创建名为“dataSource”的bean时出错:调用init方法失败;嵌套的异常是java。lang.IllegalStateException:无法确定测试的嵌入式数据库

  • 我正在尝试初始化一个没有任何行的Data.Frame。基本上,我希望为每个列指定数据类型并命名它们,但不因此创建任何行。 到目前为止,我所能做的最好的事情是: 它创建了一个data.Frame,其中有一行包含我想要的所有数据类型和列名,但也创建了一个需要删除的无用行。 有没有更好的办法做到这一点?

  • 问题内容: 创建一个新的数据库架构,并创建一个不存在的数据库架构,并更新现有的数据库架构。如果我想检查数据库模式是否存在,并根据将要创建的数据库模式来检查,该如何实现。目前,我的配置是: 和HibernateEMSDao.java: 这是工作。什么配置可以帮助我实现这一目标?就像是: 检查ID = 1的用户是否存在 如果没有创建架构 感谢致敬。 问题答案: 您可以禁用该选项,检查条件(可能使用普通

  • 这是一个由两部分组成的问题。我已经在Windows Server 2008 VM上安装了Oracle 11g个人版服务器。在安装过程中,我选择了安装数据库的选项(示例/空白数据库?)。 现在,在虚拟机上,我可以在本地主机端口1158启动Oracle Enterprise Manager控制台,以SYSMAN或SYSTEM的身份登录,我可以看到:“数据库实例”:orcl.127.55.199。在运行

  • 我正在处理非常长的嵌套JSON文件中的数据。问题是,这些文件的结构并不总是相同的,因为有些文件缺少其他文件的列。我想从一个包含所有列的空JSON文件创建一个定制模式。如果我稍后将JSON文件读入这个预定义的模式,不存在的列将被空值填充(至少计划是这样的)。到目前为止我所做的: 将测试 JSON(不包含预期的所有列)加载到数据帧中 将其架构写入 JSON 文件 在文本编辑器中打开此 JSON 文件并