由于这些实体中的引用循环,如何通过 JAX WS Web 服务发送 JPA 生成的实体而不会出现 XML 无限循环异常?
任何的想法?我发现这个 MOXy 可以做到……部分。但是我已经生成了实体并手动向它们中的每一个添加 XmlTransient 和此类注释,这太疯狂了。
您还有其他想法吗?
谢谢!
由于这些实体中的引用循环,如何通过 JAX WS Web 服务发送 JPA 生成的实体而不会出现 XML 无限循环异常?
任何的想法?我发现这个 MOXy 可以做到……部分。但是我已经生成了实体并手动向它们中的每一个添加 XmlTransient 和此类注释,这太疯狂了。
您还有其他想法吗?
谢谢!
EclipseLink JAXB (MOXy)可以通过其与@XmlInverseReference 的双向映射来处理此问题:
import javax.persistence.*;
@Entity
public class Customer {
@Id
private long id;
@OneToOne(mappedBy="customer", cascade={CascadeType.ALL})
private Address address;
}
和
import javax.persistence.*;
import org.eclipse.persistence.oxm.annotations.*;
@Entity
public class Address implements Serializable {
@Id
private long id;
@OneToOne
@JoinColumn(name="ID")
@MapsId
@XmlInverseReference(mappedBy="address")
private Customer customer;
}
有关更多信息,请参阅:
您还可以为此使用 MOXy 的元数据的外部化表示。有关更多信息,请参阅:
让你的 getCustomer @XmlTransient
@XmlTransient
公共客户 getCustomer() {
...