JAXB相当于JPA @Embdedded注释

时间:2013-07-03 17:34:46

标签: java java-ee jaxb java-ee-6 jaxb2

有一个简单的问题:

我有以下两个班级。

@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(“。”)来做到这一点。但是,没有办法从标准的Java EE规范中做到这一点而不是MOXy特定的注释吗?

1 个答案:

答案 0 :(得分:1)

目前还没有标准JAXB (JSR-222)注释来完成从{JAMEB 2.2开始EclipseLink JAXB (MOXy)@XmlPath(".")注释可以完成的工作。