2010-12-07 1 views
5

Как отправить JPA-сгенерированные объекты через веб-службу JAX WS без получения исключения из цикла бесконечного цикла XML из-за цикла ссылок в этих сущностях?Jpa-объекты через службы JAX WS без бесконечного цикла

Любая идея? Я нашел эту МОКСИ, которая может это сделать ... частично. Но у меня уже есть сущности, сгенерированные и вручную добавляющие 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; 

} 

Для получения дополнительной информации см:

Вы также можете использовать экстернализованное представление Moxy в метаданных для этого. Для получения дополнительной информации см:

+0

чувак. Я знаю ваш блог. Я читал, что это довольно круто. Спасибо за помощь. Но есть эта проблема: я имею дело со многими сущностями, которые генерируются из базы данных (как это делают многие инструменты). Как я могу настроить их так, чтобы они автоматически генерировали @XmlInverseRefrence? Спасибо д – Andr 2010-12-08 22:30:37

1

сделать свой GetCustomer @XmlTransient

@XmlTransient

госзаказчиках GetCustomer() {

...

Смежные вопросы