我最近将Hibernate从5.0更新为5.1,并且SchemaExportAPI发生了变化。迁移文档提到了此更改,但未说明如何使用较新的API。而且,我还找不到其他支持示例来解决重大变化。
我偶然发现了这个代码差异,它帮助我解决了 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)
| 归档时间: |
|
| 查看次数: |
3875 次 |
| 最近记录: |