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

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

请您参考如下方法:

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

过去几年,我们一直在多个模式中积极使用它。

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


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!