我有List<SelectConditionHeaderModel>
。
当我正在编组此列表时,我收到错误:
javax.xml.bind.MarshalException
- with linked exception:
[com.sun.istack.internal.SAXException2: A cycle is detected in the object graph. This will cause infinitely deep XML
我的抽象父类。
@XmlRootElement
@XmlSeeAlso({ SelectConditionHeaderModel.class,
SelectConditionModel.class })
public abstract class SelectConditionParentModel {
@XmlInverseReference(mappedBy = "conditionList")
SelectConditionParentModel parent;
public SelectConditionParentModel getParent() {
return parent;
}
public void setParent(HbaseSelectConditionParentModel parent) {
this.parent = parent;
}
}
扩展抽象父级的标头类
@XmlRootElement
public class SelectConditionHeaderModel extends
SelectConditionParentModel {
List<SelectConditionParentModel> conditionList;
String header;
public List<SelectConditionParentModel> getConditionList() {
return conditionList;
}
public void setConditionList(List<SelectConditionParentModel> condition) {
this.conditionList = condition;
}
public String getHeader() {
return header;
}
public void setHeader(String header) {
this.header = header;
}
}
扩展Abstract Parent的条件类
@XmlRootElement
public class SelectConditionModel extends SelectConditionParentModel {
String tableName;
public String getTableName() {
return columnFamily;
}
public void setTableName(String tableName) {
this.tableName = tableName;
}
}
请帮我解决这个问题。我也使用过XMLInverseReference,但它似乎无法正常工作。
答案 0 :(得分:0)
尝试使用基于@XmlID和@XmlIDREF的configuration。
或者你可以放@XmlTransient来排除子图。
答案 1 :(得分:0)
如果您使用EclipseLink JAXB(MOXy)作为JAXB(JSR-222)提供程序,那么您可以利用我们的@XmlInverseReference
扩展来映射您的双向关系。
您可以在我的博客上找到完整的示例: