Двусторонняя связь Jaxb Mapping
У меня есть 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;
}
}
Класс условий, расширяющий абстрактный родительский класс
@XmlRootElement
public class SelectConditionModel extends SelectConditionParentModel {
String tableName;
public String getTableName() {
return columnFamily;
}
public void setTableName(String tableName) {
this.tableName = tableName;
}
}
Пожалуйста, помогите мне с этим. Я также использовал XMLInverseReference, но кажется, что он не работает.
3 ответа
Попробуйте использовать эту конфигурацию на основе @XmlID и @XmlIDREF.
или вы можете поставить @XmlTransient, чтобы исключить подграф.
Я предлагаю вам это решение.. У меня была та же проблема, но я решил @XmlTransient.
Я надеюсь помочь вам.
Если вы используете EclipseLink JAXB (MOXy) в качестве поставщика JAXB (JSR-222), вы можете использовать наш @XmlInverseReference
расширение для отображения ваших двунаправленных отношений.
Вы можете найти полный пример в моем блоге: