can i use jaxb with hibernate hbm2ddl?

3
我正在使用jaxb从xsd文件自动生成Java类。我需要持久化存储在从这些类实例化的对象中的数据。 是否有一种方法可以在由JAXB自动生成的相同类中自动生成hibernate代码?
在开发过程中,我需要多次重新生成这些类。如果我必须手写hibernate代码,唯一合理的方法是编写用于持久化的单独类,并编写连接器类将自动生成的类迁移到持久化类中。否则,每次根据xsd文件进行微调时,我的手写hibernate代码都会被覆盖。如果hibernate代码也是自动生成的,我可能会使用更少的类。
1个回答

2
Hyperjaxb3 是一种很好的选择。它是一个JAXB插件,可包含在构建过程中。当您通过xjc运行xsd文件时,生成的类将不仅具有与xml相关的注释,还将具有JPA注释。几乎无需编写任何代码,您就可以将XML文档持久化到数据库中,从数据库查询文档并获取XML文本。生成的代码可以在xsd文件或关联的绑定文件中进行自定义(就像使用vanilla xjc一样)。我们还利用hbm2ddl对生成的类进行配置以配置hibernate。

我们过去几年一直在多个模式上积极使用此功能。

随着您编辑XML schema/bindings(以及因此您的DB schema),您将需要手动编写SQL迁移脚本以升级任何现有数据库。似乎大多数DBMS都有一个模式比较工具,可在此处加以利用。我们在每次构建时自动将新创建的模式与已迁移(基线)的模式进行比较。


顺便说一下,我把项目迁移到了GitHub上:https://github.com/highsource/hyperjaxb3 - lexicore
@CodeMed,Lexicore是你需要寻求帮助的人(他是Hyperjaxb3的作者)。如果我能帮忙的话,我也会尽力。 - Rob
@Rob非常感谢您所提供的帮助。我在将教程应用程序导入新的eclipse项目时遇到了一些问题。我采纳了您的建议,并在另一个帖子中发布了我正在尝试将其导入eclipse的步骤记录。您是否愿意查看其他帖子?这是链接:http://stackoverflow.com/questions/26286055/importing-hyperjaxb-purchase-order-tutorial-into-eclipse - CodeMed

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接