我正在尝试将两个不同的XML文件编组/解组到POJOS.第一个XML文件如下所示:
--Network.xml--
<Network>
<Nodes>
<Node id="ROD" />
<Node id="KFI" />
<Node id="JND" />
</Nodes>
<Arcs>
<Arc fromNode="ROD" />
<Arc fromNode="JND" />
</Arcs>
</Network>
---------
Run Code Online (Sandbox Code Playgroud)
使用@XmlID和@XmlIDREF注释,我可以成功填充Arc类以指向它引用的正确节点.
但是,我还必须解析这个XML:
--NetworkInputs.xml--
<NetworkInputs>
<Flows>
<Flow toNode="JND" />
<Flow toNode="ROD" />
</Flows>
</NetworkInputs>
------
Run Code Online (Sandbox Code Playgroud)
目前,我的程序成功解组了Network对象,但是Network和NetworkInput之间没有连接,允许JAXB"看到"Network中存在的节点.我希望我的Flow对象指向Network类中的正确Node.
我基本上想要这样做:http: //old.nabble.com/JAXB-Unmarshalling-and-XmlIDREF-using-different-stores-td14035248.html
我尝试实现这个:http: //weblogs.java.net/blog/kohsuke/archive/2005/08/pluggable_ididr.html 它只是不起作用,因为我无法获取我填充的网络的节点数据静态上下文.
甚至可以做这样的事情吗?
假设一个Java对象:
Object obj = new Object();
Run Code Online (Sandbox Code Playgroud)
如何将此对象存储在数据库中以保持此状态,并且在存储之后,应该很容易转换为Java对象,就像我存储它时一样?
我正在尝试使用JAXB将hibernate对象列表转换为XML.是否存在任何特殊注意事项或任何原因导致具有一对多关系的hibernate对象列表无法转换?
1.)似乎Hibernate提供的PersistentSet不是Serializable,因此不能被JAXB转换.我可能需要将它转换为"Serializable"集.它是否正确?如果是,我该如何实现?
编辑1.我将编写Set adapter class,类似于此示例链接.将更新我的发现.http://www.objectpartners.com/2010/01/25/using-jpa-and-jaxb-annotations-in-the-same-object/
如下所述,不需要转换PersistentSet,因为它已经可序列化.
编辑2(和解决方案).好的,我能够使它工作.感谢Maven的Schemagen提供了'java.sql.TimeStamp'与JAXB不兼容的提示.我写了一个将TimeStamp转换为Date的适配器.
感谢大家对此的指导.