我最近将Hibernate从5.0更新为5.1,并且SchemaExportAPI发生了变化。迁移文档提到了此更改,但未说明如何使用较新的API。而且,我还找不到其他支持示例来解决重大变化。
SchemaExport
我偶然发现了可以帮助解决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()); }