【问题标题】:can i use jaxb with hibernate hbm2ddl?我可以将 jaxb 与休眠 hbm2ddl 一起使用吗?
【发布时间】:2014-12-03 09:13:52
【问题描述】:

我正在使用 jaxb 从 xsd 文件中自动生成 java 类。我将需要持久化将存储在将从类实例化的对象中的数据。 有什么方法可以在 JAXB 自动生成的类中自动生成休眠代码?

在开发过程中,我需要多次重新生成类。如果我必须手动编写hibernate代码,我能想到的唯一合理的方法是使用hibernate编写单独的类以实现持久性,并编写将自动生成的类迁移到持久性类的连接器类。否则,每次我根据 xsd 文件的微调重新运行 jaxb 时,我的手写休眠代码都会被覆盖。如果休眠代码也是自动生成的,我最终可以使用更少的类。

【问题讨论】:

    标签: java xml hibernate jaxb xsd


    【解决方案1】:

    Hyperjaxb3 是要走的路。它是您在构建过程中包含的 JAXB 插件。当你通过 xjc 运行你的 xsd 文件时,你不仅会在生成的类上获得与 xml 相关的注解,还会获得 JPA 的注解。几乎无需编写任何代码,您就可以获取 XML 文档,将其保存到数据库中,从数据库中查询文档并获取 XML 文本。可以在 xsd 文件或关联的绑定文件中自定义生成的代码(就像 vanilla xjc 一样)。我们还在生成的类上使用 hbm2ddl 来配置休眠。

    在过去的几年里,我们一直在多个架构上积极使用它。

    当您编辑您的 XML 架构/绑定(以及您的数据库架构)时,您将不得不手动编写 SQL 迁移脚本来升级任何现有的数据库。似乎大多数 DBMS 都有一个可以在这里使用的模式比较工具。我们会在每次构建时自动将新创建的架构与迁移的(从基线)架构进行比较。

    【讨论】:

    • 对了,我把项目移到了GitHub:github.com/highsource/hyperjaxb3
    • @CodeMed lexicore 是可以帮助您的人(他是 hyperjaxb3 的作者)。如果可以的话我会帮忙的。
    • @Rob 非常感谢您提供的帮助。我在将教程应用程序放入新的 eclipse 项目时遇到了一些问题。我采纳了您的建议,并在另一篇文章中逐步说明了我正在做的事情,以尝试将其纳入 Eclipse。你愿意看看其他帖子吗?这是链接:stackoverflow.com/questions/26286055/…
    猜你喜欢
    • 2019-03-11
    • 1970-01-01
    • 1970-01-01
    • 2013-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    相关资源
    最近更新 更多