在hbm2ddl之前创建模式

时间:2014-07-22 07:18:00

标签: java hibernate jpa hsqldb

我想用内存hsqldb来测试我的程序。要创建表格,我使用hibernate.hbm2ddl.auto=create 但是我得到一个例外,因为在创建表之前不会创建通过注释在实体类中定义的模式。现在我正在寻找机会在hibernate.hbm2ddl.auto运行之前创建模式。删除模式对我来说不是机会,因为我的程序需要它们。

我的问题与this差不多。不同的是我不使用弹簧,所以解决方案对我不起作用。

2 个答案:

答案 0 :(得分:5)

假设您正在使用H2数据库,您可以提供init命令以使用jdbc连接URL运行。例如:

your.jdbc.url=jdbc:h2:mem:;DB_CLOSE_DELAY=-1;INIT=create schema IF NOT EXISTS your_schema

不幸的是,关于hibernate jira的问题仍未得到解决https://hibernate.atlassian.net/browse/HHH-5665

答案 1 :(得分:0)

自Hibernate 5起,出现了一种更清洁,更独立于db的方式,该方式也适用于hsqldb。添加此配置属性:

hibernate.hbm2dll.create_namespaces=true