【发布时间】:2015-11-17 15:00:17
【问题描述】:
在 Hibernate 4.x 中,我曾经生成和导出带注释实体中定义的模式,如下所示(使用 Spring 在类路径上查找带注释的实体):
Connection connection =
DriverManager.getConnection("jdbc:h2:mem:jooq-meta-extensions", "sa", "");
Configuration configuration = new Configuration()
.setProperty("hibernate.dialect", "org.hibernate.dialect.H2Dialect");
// [...] adding annotated classes to Configuration here...
configuration.generateSchemaCreationScript(
Dialect.getDialect(configuration.getProperties()));
SchemaExport export = new SchemaExport(configuration, connection);
export.create(true, true);
这在 Hibernate 5.0 中不再有效:
除了:
相当多的方法已从配置中删除
使用 Hibernate 5.0 基于一组带注释的实体在现有 JDBC 连接上生成和导出数据库的正确方法是什么? (纯基于 JPA 的解决方案也可以)
(请注意,仅删除对 generateSchemaCreationScript() 的调用似乎可行,但我希望确保正确处理)
【问题讨论】:
-
感谢您的编辑,@NeilStockton。如果 Hibernate 实现的纯基于 JPA 的解决方案是可能的,我也会把它作为答案。
-
您的意思是为 persistence.xml 中的类所需的模式创建一个 DDL 文件? (因为我不使用 Hibernate,所以不知道这些方法是什么)。这不是 javax.persistence.schema-generation.scripts.action 和 javax.persistence.schema-generation.scripts.create-target 的属性吗?
-
问题实际上是“使用 Hibernate 5.0 基于一组带注释的实体生成和导出数据库的正确方法是什么?(纯基于 JPA 的解决方案也可以)"
标签: java jpa configuration hbm2ddl hibernate-5.x