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

时间:2010-12-07 12:30:49

标签: web-services jpa jaxb eclipselink moxy

如何通过JAX WS Web服务发送JPA生成的实体,而无需获取 由于这些实体中引用的循环,XML无限循环异常?

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

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

谢谢!

2 个答案:

答案 0 :(得分: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;

}

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的元数据外部化表示。有关更多信息,请参阅:

答案 1 :(得分:1)

制作你的getCustomer @XmlTransient

  

@XmlTransient

     

public Customer getCustomer(){

     

...