2010-12-07 32 views
5

如何通過JAX WS Web服務發送JPA生成的實體而不會因爲這些實體中的引用循環而使 出現XML無限循環異常?通過JAX WS服務的Jpa實體無死循環

有什麼想法?我發現這個可以做到這一點的MOXY ...部分。但我已經有了生成的實體,並且手動添加XmlTransient和這些註釋給它們每個都是瘋狂的。

你有任何其他想法如何做到這一點?

謝謝!

回答

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; 

} 

欲瞭解更多信息,請參閱:

您也可以使用這個元數據的莫西的外化表現。欲瞭解更多信息,請參閱:

+0

夥計。我知道你的博客。我讀它很酷。感謝幫助。但有這個問題:我正在處理從數據庫生成的許多實體(就像許多工具可以做到的那樣)。我如何定製它們以便它們自動生成@XmlInverseRefrence?感謝:D – Andr 2010-12-08 22:30:37

1

讓你GETCUSTOMER @XmlTransient

@XmlTransient

公衆客戶GETCUSTOMER(){

...