我收到了一个JAXB编组错误(循环无限循环) - 发布在这个问题的末尾。
我知道这是由于双向对象引用而我在测试用例中使用了EclipseLink MOXy JAXB marshaller来解析这个指定ID和IDREF并使用包含
的jaxb.properties文件指定了JAXB提供程序CREATE TABLE Bk_Jobs ( Job_ID Int (20),
Job_Title Varchar (255),
Min_Salary Decimal (25),
Max_Salary Decimal (25)
);
然而,生产代码使用Spring OXM,我无法看到如何使用它来实现类似的结果。
我添加了一个jaxb.properties文件,但它没有被使用 - 我知道这是因为我添加了一个空文件作为测试并且它没有抱怨(就像在原型测试用例中那样)。
如何指定要使用的JAXB编组程序? 它似乎正在使用:
javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory
而我的工作测试用例使用:
org.eclipse.persistence.oxm.XMLMarshaller
例外:
javax.xml.bind.MarshalException
- 链接异常:
[例外[EclipseLink-25037](Eclipse持久性服务 -
2.6.1.v20150916-55dc7c3):
的 org.eclipse.persistence.exceptions.XMLMarshalException
异常描述:在对象图中检测到循环。这将
导致无限循环:
在org.eclipse.persistence.jaxb.JAXBMarshaller.marshal
(JAXBMarshaller.java:487)
答案 0 :(得分:0)
好的 - 解析我指定的(在Spring OXM文件中)
<xml-inverse-reference mapped-by="myObject"
<xml-element xml-idref="true"
我只添加了xml-idref =&#34; true&#34;关系