gpt4 book ai didi

java - 如何以编程方式生成 Hibernate JPA 模式?

转载 作者:行者123 更新时间:2023-11-29 08:35:04 25 4
gpt4 key购买 nike

我想使用 Hibernate/HBM2DDL 模式生成作为起点,使用 Liquibase 或 Flyway 等工具管理我的应用程序的 SQL 模式。为此,我需要在我的项目中运行一个小实用程序来打印自动生成的架构。

对于旧版本或 Hibernate,这相对简单。像下面这样的东西会起作用:

EntityManagerFactory emf = null; // TODO: create your EMF the usual way.
Class<? extends Dialect> hibernateDialectType = null; // TODO: e.g. HSQLDialect.class.

Configuration hibernateConfig = new Configuration();
hibernateConfig.setProperty(Environment.DIALECT, hibernateDialectType.getName());
for (EntityType<?> entityType : emf.getMetamodel().getEntities()) {
hibernateConfig.addAnnotatedClass(entityType.getJavaType());
}

SchemaExport schemaExporter = new SchemaExport(hibernateConfig);
schemaExporter.setFormat(true);
schemaExporter.setDelimiter(";");
schemaExporter.create(Target.SCRIPT);

但至少从 Hibernate 5.2 开始,SchemaExport 实用程序无法从 Hibernate Configuration 实例构建。

那么现在如何做到这一点呢?

最佳答案

我认为没有充分的理由不使用标准 JPA,通过

Persistence.generateSchema(String persistenceUnitName, Map properties);

这样您就不会将自己束缚于任何特定的实现,并且仍然可以通过使用 javax.persistence.schema-generation.* 属性来获取 DDL 脚本。

关于java - 如何以编程方式生成 Hibernate JPA 模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44737662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com