我想用内存hsqldb来测试我的程序。要创建表格,我使用hibernate.hbm2ddl.auto=create
但是我得到一个例外,因为在创建表之前不会创建通过注释在实体类中定义的模式。现在我正在寻找机会在hibernate.hbm2ddl.auto运行之前创建模式。删除模式对我来说不是机会,因为我的程序需要它们。
我的问题与this差不多。不同的是我不使用弹簧,所以解决方案对我不起作用。
答案 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