我有一个包含循环的对象图。我如何让 JAXB 处理这个问题?我尝试使用@XmlTransient
子类中的注释,但 JAXB 编组器仍然检测到循环。
@Entity
@XmlRootElement
public class Contact {
@Id
private Long contactId;
@OneToMany(mappedBy = "contact")
private List<ContactAddress> addresses;
...
}
@Entity
@XmlRootElement
public class ContactAddress {
@Id
private Long contactAddressId;
@ManyToOne
@JoinColumn(name = "contact_id")
private Contact contact;
private String address;
...
}
这一页《非官方 JAXB 指南》中提供了三种处理循环的策略。它们是(概括而言):
- 将形成循环的引用属性之一标记为@XmlTransient。
- 使用 @XmlID 和 @XmlIDREF 以便使用 XML id 而不是包含来表示引用。
- 使用 CycleRecoverable 接口以编程方式处理循环。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)