没有无限循环的JAX WS服务上的Jpa实体

And*_*ndr 5 web-services jpa jaxb eclipselink moxy

如何通过JAX WS Web服务发送JPA生成的实体,而不会因为这些实体中的引用循环而获得XML无限循环异常?

任何的想法?我发现这个MOXy可以做到......部分.但是我已经生成了实体,并且手动将XmlTransient和这样的注释添加到每个实体中都很疯狂.

你还有其他想法怎么做吗?

谢谢!

bdo*_*han 1

EclipseLink JAXB (MOXy)可以通过 @XmlInverseReference 的双向映射来处理此问题:

import javax.persistence.*;

@Entity
public class Customer {

    @Id
    private long id;

    @OneToOne(mappedBy="customer", cascade={CascadeType.ALL})
    private Address address;

}
Run Code Online (Sandbox Code Playgroud)

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;

}
Run Code Online (Sandbox Code Playgroud)

欲了解更多信息,请参阅:

您还可以使用 MOXy 的元数据外部化表示来实现此目的。欲了解更多信息,请参阅: