JAXB反序列化到实体类

3
我正在处理一个涉及XML数据流的项目,并将这些数据转换为我的数据库中的持久化数据。到目前为止,我已经能够使用web服务,生成了一些JAXB POJO,并开始对XML数据流进行非编组。我正在尝试弄清楚是否有一种直接从XML到实体的方法。我知道我可以设计新的数据库,生成一些实体,然后将XML解组为生成的POJO,然后将POJO数据移动到实体并进行持久化。但那听起来相当荒谬。请问有没有人能给我提示在哪里查找,我在搜索该问题时没有找到任何东西。我正在使用Netbeans 6.9。

1
为什么不直接将您的POJO标注为实体? - ThomasRS
1个回答

2
您可以创建自己的JAXB注释对象,这些对象也是Java Persistence API(JPA)注释的对象。使用JPA,您可以将这些对象持久化到数据库中。在单个类上保留JAXB和JPA注释的好处是,只需要在该类、UI表示和相关XSD中进行对象更改,而不需要在其他地方进行更改。
然而,这在某种程度上破坏了N层体系结构的思想。实际上,您正在将业务逻辑与持久性层合并。为了消除重复,这可能是一个好主意,但有时您会发现自己使用@Transient@XmlTransient将仅在XML或数据库中需要的内容放入类中,而不影响它们不需要的区域。
因此这是可能的,但你需要在这样做之前权衡利弊。另请参见这个问题这个问题,以获取更多关于权衡的想法(所有这些倾向于将两组注释放在一个地方)。 这个问题涵盖了一些工具来最小化通过JAXB在XML和数据存储之间传输数据的工作量。

+1,但我不同意这是业务逻辑和持久性的合并。有关混合JAXB和JPA的示例,请参见:http://bdoughan.blogspot.com/2010/08/creating-restful-web-service-part-35.html - bdoughan
谢谢,我需要一些好的意见和讨论来看看在这里该怎么做! - grantk

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