2011-08-18 38 views
3

我有从eclipseLink创建的实体。我试图使用相同的对象来生成一个xml.I在一个类中有一个主键引用,我不知道我需要使用什么注释来获得所需的XML。 我JPA到JAXB问题

public class ABC implements Serializable { 
private static final long serialVersionUID = 1L; 

@EmbeddedId 
private NamePK id; 

@XmlElement 
private String address1; 

    @XmlElement 
private String address1; 

... }

public class NamePK implements Serializable { 
//default serial version id, required for serializable classes. 
private static final long serialVersionUID = 1L; 

@Column(name="county") 
@XmlTransient 
private String county; 

@Column(name="NAME") 
@XmlElement 
private String name; 

....

}

在NamePk注释应该如何让我得到XML输出as

<name>XXX</name> 
<Address1>YYY</Address1> 
<Address2>ZZZ</Address2> 

我是否需要标注在PK(职业等级和参考)两者的水平

感谢

回答

4

注:我是EclipseLink JAXB (MOXy)铅和JAXB 2(JSR-222)的成员专家组。

您可以使用的EclipseLink的莫西JAXB实现来实现:

ABC

您可以使用@XmlPath(".")有嵌入的ID元帅/在同一水平的解组为您ABC类:

public class ABC implements Serializable { 

    private static final long serialVersionUID = 1L; 

    @EmbeddedId 
    @XmlPath(".") 
    private NamePK id; 

    @XmlElement 
    private String address1; 

    @XmlElement 
    private String address1; 

} 

更多信息

+0

这并没有为我工作。 PK仍然在他自己的水平。我需要在PK班上做些什么吗? –

+1

我的错。没有像在其他一些答案中指出的那样使用jaxb.properties。 –

+0

但仍然,解组似乎并不奏效。需要进一步调查 –