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

标签 web-services jpa jaxb eclipselink moxy

如何在不获取 JAX WS Web 服务的情况下发送 JPA 生成的实体
由于这些实体中的引用循环而导致 XML 无限循环异常?

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

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

谢谢!

最佳答案

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;

}

更多信息请参见:
  • http://bdoughan.blogspot.com/2010/07/jpa-entities-to-xml-bidirectional.html
  • http://wiki.eclipse.org/EclipseLink/Examples/MOXy/JPA

  • 您还可以为此使用 MOXy 的元数据外化表示。有关更多信息,请参阅:
  • XML to Java mapping tool - with mapping descriptor
  • http://wiki.eclipse.org/EclipseLink/Examples/MOXy/EclipseLink-OXM.XML
  • 关于web-services - 没有无限循环的 JAX WS 服务上的 Jpa 实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4376597/

    相关文章:

    web-services - SOA 原则 - 一个服务应该调用另一个服务吗?

    ios - 在 ios web 服务的 NSURL 连接上使用 web 服务库(RESTKIT/ASIHTTP 请求)的优点

    java - spring data,PagingAndSorting存储库,根据类类型的(嵌套)属性值进行排序

    java - Wicket 口和数据库访问的最佳实践

    java - Maven 在@XmlAccessorType 上抛出编译错误 "Cannot find symbol",但我可以找到它

    java - 将列表解码为 LinkedList Jaxb

    xml - 使用 DTD 的相对路径解码文档时出现 JAXB SAXParseException

    java - 部署在同一 tomcat 服务器上的两个 Web 应用程序之间的跨上下文通信

    java - JPA获取一对多

    C++ SOAP 工具包