5

需要:接收 XML 并将数据保存到数据库。

当前使用:JAXB 将 XML Schema 转换为 java 类。然后我打算使用 JPA 来持久化由 JAXB 编组的对象。

问题:我想要一些东西来弥补差距。在 JAXB 生成 Java 类之后,我必须使用 @Temporal 手动注释所有 java.util.Date 字段;我必须将@Entity 放在每个生成的类的顶部......等等。

我遇到了 Hyperjaxb。但是我找不到关于它的少量文档,并且无法使其正常工作。

我对完全不同的方法持开放态度。这似乎是一个常见问题,所以也许有一个通用的解决方案。

4

3 回答 3

3

注意: 我是EclipseLink JAXB (MOXy)的负责人,也是JAXB 2 (JSR-222)专家组的成员。

如果您已经有一个现有的数据库模式,您可以使用 Eclipse 中的 Dali 工具(Web 工具项目的一部分)从数据库中生成您的 JPA 实体:

JAXB 是异常配置,这意味着您只需在要覆盖默认行为的地方添加注释。Dali 还有一些工具可以让添加 JAXB 注释更容易:

JPA 实体有时使用双向关系和复合键,这些可能很难映射到 XML。EclipseLink JAXB (MOXy) 包含一些扩展以使这更容易(注意 EclipseLink 还提供了 JPA 实现):

于 2011-12-18T11:20:24.500 回答
1

Hyperjaxb 完全符合您的要求。这是文档:

这是一个帮助您入门的教程:

于 2011-12-18T19:08:49.793 回答
0

我可以建议两个选项:选项 1。分别定义您的实体类型,使用相关的 JPA 注释,从模式生成您的 JAXB 类型,并在运行时将一个映射到另一个。如果它是一个简单的映射,您可以使用 Apache BeanUtils 将属性从一个 bean 复制到另一个,如果它是一个更复杂的映射,那么您可以使用像推土机这样的框架

选项 2:从实体类型开始,从您的实体类型生成架构或手动保持实体类型和架构同步。更像您描述的选项,除了权威来源是 java 代码而不是模式。

于 2011-12-18T03:45:58.977 回答