JAXB相当于JPA@Embdeddeded注释



快速提问:

我有以下两节课。

@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Customer {
  @XmlElement(name = "name")
  private String name;
  @XmlElement(name = "address")
  private Address address;
}
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Address {
  @XmlElement(name = "post_code")
  private String postCode;
  @XmlElement(name = "country")
  private String country;
}

这将生成以下JSON:

{ 
  "name" : "john",
  "address" : {
      "post_code" : "XYZ 123",
      "country" : "US"
  }
}

但我实际上想要更像这样的东西(所以它在本质上类似于JPA中的@Embedded):

{ 
  "name" : "john",
  "post_code" : "XYZ 123",
  "country" : "US"
}

因此,嵌入的对象字段是"上拉"的。我注意到在stackoverflow上,有人提到你可以使用MOXy的@XmlPath(".")来做这件事。但是,标准的javaEE规范没有办法做到这一点,而不是MOXy特定的注释吗?

目前还没有一个标准的JAXB(JSR-222)注释来完成使用EclipseLinkJAXB(MOXy)JAXB2.2的@XmlPath(".")注释可以完成的任务。

最新更新