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

leo*_*ojh 5 java hibernate

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

leo*_*ojh 4

我偶然发现了这个代码差异,它帮助我解决了 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());
}
Run Code Online (Sandbox Code Playgroud)