2010-12-07 11 views
5

¿Cómo puedo enviar entidades JPA generadas a través de un servicio web JAX WS sin obtener el una excepción de ciclo infinito XML debido al ciclo de referencias en esas entidades?entidades Jpa sobre servicios JAX WS sin bucle infinito

¿Alguna idea? Encontré este MOXy que puede hacerlo ... parcialmente. Pero ya tengo las entidades generadas y para agregar manualmente XmlTransient y esas anotaciones a cada una de ellas es una locura.

¿Tienes alguna otra idea de cómo hacerlo?

Gracias!

Respuesta

1

EclipseLink JAXB (MOXy) puede manejar esto con su mapeo bidireccional con @XmlInverseReference:

import javax.persistence.*; 

@Entity 
public class Customer { 

    @Id 
    private long id; 

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

} 

y

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; 

} 

Para más información ver:

También puede utilizar la representación externalizada de moxy de los metadatos para esto. Para obtener más información, véase:

+0

amigo. conozco tu blog Lo leí, es genial. Gracias por la ayuda. Pero existe este problema: estoy tratando con muchas entidades que se generan a partir de la base de datos (como muchas herramientas pueden hacerlo). ¿Cómo puedo personalizarlos para que generen @XmlInverseRefrence automáticamente? Gracias: D – Andr

1

hacer su GetCustomer @XmlTransient

@XmlTransient

GetCustomer pública Cliente() {

...