当前位置: 首页 > 面试题库 >

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

桓高澹
2023-03-14
问题内容

我最近将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());
}


 类似资料:
  • 我一直在将我的项目从Hibernate 3.x版本升级到Hibernate4.1.4。现在我有一个特殊的问题。 放置所有必需的JAR并将它们引用到类路径后,构建 这个类在hibernate3.jar中出现过。现在,它在Hibernate-core中。仍然不明白为什么会这样说.. 我删除了早期的部署,并再次部署了它。已验证那里是否存在Hibernate4个罐子。当我启动服务器时,我仍然收到此错误。

  • 我正在尝试将项目从3.6.10版升级到4.3.6版,在应用程序启动时出现“提交失败”错误。而不是使用: ,为了获得会话,现在我正在使用: 事务由TransactionManager和Spring的NameMatchTransactionAttribute资源处理。 这是我得到的堆栈跟踪: 这是我的会话工厂bean配置:

  • 我正在尝试将log4j升级到log4j2。我试图升级的特定代码行是: 静态字段在新的中不再可用。相反,似乎使用了静态方法来访问优先级int值,可以将指定为。 但是,此方法还需要指定。在调用时,如何知道要指定哪个? 旧优先级:https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/priority.html 新优先级:https:/

  • 我们正在应用程序中进行更改,将文件扩展名从xls转换为xlsx格式(2007及以上),同时从应用程序中导出文件。 通过升级到POI3.9JAR,我添加了HSSF的XSSF intead,从而进行了必要的代码更改。我们使用的Jar文件的前一个版本是POI3.0。 以下是我在库文件夹中添加的JAR:

  • 我正在Mac OS X上运行。我最近将node和npm更新到了最新版本,按照以下已接受的回答步骤将node.js升级到Mac OS上的最新版本。node:和npm:现在当我运行我的Gulp文件时,我得到了这个错误: 有人知道这是什么问题吗?

  • 失败:构建失败,但有例外。 > 其中:脚本C:\flatter\packages\flatter\u tools\gradle\flatter。格雷德尔线:1070 错误:任务:app:compileFlutterBuildDebug的执行失败。 处理“命令”C:\flatter\bin\flatter。bat“”以非零退出值1结束 > 获取更多帮助https://help.gradle.org