一尘不染

将Hibernate升级到5.1.0后如何导出架构?

hibernate

我最近将Hibernate从5.0更新为5.1,并且SchemaExportAPI发生了变化。迁移文档提到了此更改,但未说明如何使用较新的API。而且,我还找不到其他支持示例来解决重大变化。


阅读 186

收藏
2020-06-20

共1个答案

一尘不染

我偶然发现了可以帮助解决API差异的代码差异:https
:
//gitlab.nuiton.org/nuiton/topia/commit/0c57f073ad879a981e9fa3315f0e04669a57858b

这是我的代码,该代码将带有@Entity批注的任何类的架构导出到输出窗口。

  static void getDDL(String packageName, String propertiesFile) throws IOException {

    MetadataSources metadata = new MetadataSources(
        new StandardServiceRegistryBuilder()
            .loadProperties(propertiesFile)
            .build());

    new Reflections(packageName)
        .getTypesAnnotatedWith(Entity.class)
        .forEach(metadata::addAnnotatedClass);

    //STDOUT will export to output window, but other `TargetType` values are available to export to file or to the db.
    EnumSet<TargetType> targetTypes = EnumSet.of(TargetType.STDOUT);

    SchemaExport export = new SchemaExport();

    export.setDelimiter(";");
    export.setFormat(true);

    export.createOnly(targetTypes, metadata.buildMetadata());
}
2020-06-20