是否可以使用@XmlInverseReference,其中object和property属于同一类型?

时间:2011-10-18 18:11:57

标签: java jaxb marshalling eclipselink moxy

我正在使用MOXy JAXB实现并广泛使用@XmlInverseReference批注。但是,我最近遇到了这种方法似乎不起作用的情况。如果我有一个包含字段的类,该字段的属性与父类的类型相同,则应用@XmlInverseReference似乎完全禁止对该属性进行编组。省略注释会产生可预测的StackoverflowException。

有没有人遇到过这个问题并发现了一个有效的MOXy解决方案?

违规类的快速示例:

public class Person {

  private Long id;
  private Person spouse;

  public Long getId() {
    return id;
  }

  public void setId(Long id) {
    this.id = id;
  }

  @XmlInverseReference(mappedBy="spouse")
  public Person getSpouse() {
    return spouse;
  }

  public Person setSpouse(Person spouse) {
    this.spouse = spouse;
  }

}

1 个答案:

答案 0 :(得分:2)

当对象和属性属于同一类型时,可以使用

EclipseLink MOXy@XmlInverseReference。此用例的当前问题是需要在关系的两个方向上使用相同的属性。

你看到了什么

当使用@XmlInverseReference注释属性时,对于编组MOXy会将该属性视为@XmlTransient

增强请求

我已输入以下增强请求以支持此类行为。请添加您认为相关的任何其他详细信息。

有关@XmlInverseReference

的更多信息